Hi,
du hast vor Enable Int0 "Enable Interrupts" vergessen.
MfG
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.
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
Hi,
du hast vor Enable Int0 "Enable Interrupts" vergessen.
MfG
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
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 ?!
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
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.
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.
"®FILE=M8DEF.DAT" hat da nicht gereicht.
Unerklärlich, sinnlos, aber es war so.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
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.
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
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!)
Lesezeichen