PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Int0 will einfach nicht - oder bin ich zu b....



Raimond
25.11.2006, 21:47
Hallo,

nach dem ich mich schon eine weile mit den Attiny2313 beschäftigt habe, ist nun ein Mega8 dran. Und schon ist das erste Problem da. 8-[

folgender Code

'------------------------
$regfile= "m8def.dat"
$crystal=4000000

Ddrd=&B11111011
Portd=&B00000100

On Int0 Onint0
Config Int0 = Rising
Enable Int0
Enable Interrupts

Do
Loop

Onint0:
Toggle Portd.0
Return
'-----------------------

Nachdem am Portd.2 eine steigende Flanke anliegt, sollt eigentlich der Portd.0 umschalten. Aber es funktioniert einfach nicht.
Müssen da noch irgend welche Fuses anders gesetzt werden? Aus dem Datenblatt bin ich auch nicht schlauer geworden.

Gruß, Raimond

Edit: vergessene Zeile im Code eingefügt

coCo
25.11.2006, 21:51
Hi,
du hast vor Enable Int0 "Enable Interrupts" vergessen.


MfG

Raimond
25.11.2006, 22:58
Hallo,

das wäre jetzt zu schön gewesen, aber die Zeile habe ich im ersten Posting einfach vergessen.
Hast Du vielleicht noch eine Idee?
Am Portd.2 liegt auf jedem Fall ein entsprechendes Signal an, mit Oszi kontrolliert.

Grüße,
Raimond

linux_80
25.11.2006, 23:28
Hallo,

hast Du mal einen anderen Port als PD0 verwendet um die LED zu steuern, denn an PD0 und PD1 ist die UART, nicht das Bascom diese einfach mal aktiviert hat ?!

Raimond
26.11.2006, 00:46
Ja, habe auch schon andere Ports probiert und den Oszi drangehängt - absolute tote Hose. Irgendwie kann ich machen was ich will, ich beiss mir gleich ins Knie.

resegnierte Grüße,
Raimond

recycle
26.11.2006, 02:04
Könnte es daran liegen: Portd=&B00000100 ?

Soweit ich weiss, schaltet man damit den internen Pullup ein.
Das scheint mir grundsätzlich nicht falsch, ich würde aber trotzdem mal versuchen Portd=&B00000000 zu setzen.
Begründen kann ich das allerdings nicht.

PicNick
26.11.2006, 10:19
Ich bin der Sache noch nicht nachgegeangen, aber ich hatte schon mal Probleme, sodaß ich auch in "OPTIONS->COMPILER->CHIP" den richtigen Chip einstellen mußte, damit es funzt.
"&REGFILE=M8DEF.DAT" hat da nicht gereicht.
Unerklärlich, sinnlos, aber es war so.

Zapo.
26.11.2006, 22:34
das mit dem Pull Up scheint mir garnicht so unlogisch!
schließlich benutzt du ja auch Raising!

probiers doch mal mit FALLING und einer negativen Flanke am Int0!
dann sollte es funktionieren.....(denke ich!)

Zapo.

Raimond
27.11.2006, 17:23
Hallo,

habe den Fehler gefunden, auch wenn ich es noch nicht so richtig begreife.
Er lag nicht am Code oder MC, sondern an der äußeren Beschaltung. Das Signal kommt über einen Optokoppler (4N25). Nach dem ich diesen ausgetauscht habe funktioniert alles bestens.
Was ich nur nicht verstehe, warum? Denn beide Optokoppler haben am Ausgang das gleiche Signal laut Oszi. Es handelt sich nur um andere Hersteller. Ich bin eigentlich davon ausgegangen das ein 4N25 gleich ein 4N25 ist - egal welcher Hersteller. Defekt kann der Ok auch nicht sein, denn in einer anderen Schaltung funktioniert er tadellos.

verwunderte Grüße
Raimond

Zapo.
27.11.2006, 20:28
wie habt ihr eigentlich einen Taster entprellt.
wenn ich hier ein Interrupt auslöse bekomme ich immer 2 Interrupts!
(habe auch schon Int0 disable geschaltet aber der interrupt ist schneller als der Befehl in BASCOM!)