Int0 am AT1280 im Arduino Mega (!BASCOM)

OP #2619171
Nachdem ich bis jetzt der Meinung war, nicht ganz Blind durchs Leben zu 
laufen , werde ich z.Zt. scheinbat eines Besseren belehrt. Ich versuche 
die ersten Schritte mit einem Arduino Meaga 1280 und in diesem 
Zusammenhang auch Bascom 2.0.7.1. Bei dem Versuch mit verschiedenen 
Beispielen probiere ich im ersten Schritt das Beispiel mit dem dafür 
vorgesehenen Prozessor und danach mit dem m1280def.dat.
Also
1. Beispiel laden
2. Compilieren
3. Simulieren
4. Anpassen auf m1280def.dat
5. ggf. Anpassen der Ports
6. Compilieren
7. Simulieren
8. Auf Arduino schiessen
9. und auf Hardware nochmals testen und freuen das es geht
Bis jetzt war das auch alles recht erfolgreich und ich hab eine Menge 
über den Chip und seine Fähigkeiten gelernt.
Seit Freitag ist alles anders. Habe mich hier das erste Mal mit INT0 
beschäftigt. Für den atmega8 mit folgenden Code
$regfile = "M8def.dat"
$crystal = 10000000
$hwstack = 100
$swstack = 100
$framesize = 100
$sim
'LED1 an PD7
Led1 Alias Portb.7
Config Led1 = Output
'LED2 an PD6
Led2 Alias Portb.6
Config Led2 = Output
'TASTER1 an PD2
Taster1 Alias Pind.2
Config Taster1 = Input
Taster1 = 1

On Int0 On_int0
Config Int0 = Falling
Enable Int0
Enable Interrupts

Do
   Toggle Led1
   Waitms 200
Loop
End

On_int0:
   Toggle Led2
Return

Nicht sonderlich anspruchsvoll aber der Code funktioniert und lässt sich 
auch simulieren

Nach Änderung auf den 1280ger(m1280def.dar)und Anpassung des Interupts- 
Int0 liegt auf portd0 - geschieht nix in der Simulation und nach dem 
Brennen auf den Arduino ebenfalls nix. Der Interrupt wird nicht 
ausgeführt. Ich hab alles Mögliche ausprobiert - ohne Erfolg. Hat jemand 
von Euch eine Idee was Falsch laufen könnte??? Ich weis nicht mehr 
weiter. Bin dankbar für jede Hilfe
Gast
Mir ist nicht ganz so klar, was nicht funktioniert.

Hast Du das Programm für den ATmega8 nur simuliert oder lief es auf 
irgendeinem Board, also real?

Funktioniert nur der Interrupt nicht, oder auch die andern Programmteile 
nicht (LED, Taster)?

Ganz wichtig! Wie löst Du den Interrupt aus?
Sk Dx schrieb:
> Ergibt sich das nicht aus dem
>
> Taster1 Alias Pind.2
> ..............
> Taster1 = 1


Daraus ergibt sich nicht, dass der Pullup eingeschaltet werden soll. Das 
Pin Register ist schliesslich etwas anderes als das Port Register.

> und warum gehts dann beim M8dat.def ???????????

ZUfall. Nicht identische Eingangsbeschaltung. Die Sterne standen 
günstig. Elektrostatische Einstreuungen. Irgendwas anderes, was den Pin 
auf 1 zog.
OP
zu K.H.B.
ok - getestet - ohne Erfolg. Gleiches Verhalten. m8 geht(simulation), 
m1280 geht nicht(weder Simulation noch gebrannt).

zu Karl
Die m8 routinen laufen auf dem Simulator da mir eine Zielhardware fehlt. 
Spielt auch keine Rolle, da Sie eh alle im Simulator laufen. In sofern 
wird natürlich auch die hardware(LED/TASTER) simuliert. Was Das Programm 
tun soll ist wohl nachvollziehbar.
Was nicht geht ist die Auslösung des Interruptes per Taste.
Gast
Sk Dx schrieb:
> Die m8 routinen laufen auf dem Simulator da mir eine Zielhardware fehlt.
> Spielt auch keine Rolle, da Sie eh alle im Simulator laufen.

OK. Wenn der Simulator nicht nach Vorstellung läuft (er kann ja einen 
Bug haben), ist es ggf. besser,sich direkt an der Hersteller zu wenden.

http://www.mcselec.com/support-center/

Der ATMega1280 ist aber dann schon real? Wenn es real nicht mit dem 
Interrupt funktioniert, wird es wahrscheinlich daran liegen, dass 
irgendetwas falsch angeschlossen wurde. Ohne Schaltplan kann man nur 
raten.
Gast
Hast Du noch eine ältere Version von Bascom?
Ich habe hier das Problem, dass manches Programm unter >2.0.x sich 
merkwürdig verhält. (Timer0 im speziellen)
Unter der 1.11.9.8 lässt es sich ohne Probleme kompilieren und macht das 
was es soll. An der Zielhardware hat sich nichts verändert! (Mega64)

Mirko

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.