Gast
#394009
Hallo Leute, ich bin mittlerweile total am Verzweifeln... ich habe eine Schaltung mit 3 uC aufgebaut. Ein uC ist ein ATMega8 mit externem Quarz angeschlossen der zweite uC ist auch ein ATMega8 der seinen Takt über den XTAL1-Pin vom ersten Controller bekommt der dritte uC ist ein AT90S2313 der ebenfalls seinen Takt über den XTAL1-Pin vom ersten Controller bekommt. nun das Problem: uC 1 und 2 laufen ohne Probleme. uC 3 läuft aber irgendwie gar nicht. hier erstmal der Quellcode des 3. Controllers: ------------------------------------------------------------------ $regfile = "2313def.dat" $crystal = 4000000 'DDR = &B76543210 ; 0=Eingang ; 1=Ausgang Ddrb = &B11111111 Ddrd = &B11101111 Portb = &B01000000 Portd = &B01000001 Do Waitms 500 Portb = 64 Waitms 500 Portb = 8 Waitms 500 Portb = 16 Waitms 500 Portb = 104 Waitms 500 Portb = 0 Waitms 500 Portb = 80 Waitms 500 Portb = 96 Loop End ------------------------------------------------------------------- Ist ja soweit ein einfaches Programm. Wenn ich die Spannung einschalte, dann setzt der Controller den PortB manchmal auf 0, manchmal auf 96 und manchmal auf 64. (nur diese 3 varianten sind bisher aufgetreten) Aber ändern tut sich an dem Port-Status gar nichts... Eigentlich sollte er ja nach 0,5 Sekunden wechseln, aber es tut sich auch nach 5 Minuten nix. Was mir aufgefallen ist: der PortD wird immer richtig gesetzt, was ja darauf schließen lässt, das zumindest die ersten Zeilen ordnungsgemäß ausgeführt wurden. Um einen Hardware fehler bei der Schaltung auszuschließen, habe ich auch über einen Adapter einen ATMega8 an den Steckplatz des 2313er gesteckt und siehe da, der Mega8 läuft dort ohne Probleme. Warum klappt das also nicht mit dem 2313er? Kaputt ist der 2313er auf keinen Fall, habs schon mit mehreren Probiert, die in einer anderen Schaltung mit einem anderen Programm Fehlerfrei laufen... Bitte helft mir so schnell wie möglich... vielen Dank Robodriver PS: wen es interessiert, im Anhang noch der entsprechende Assamblercode