Hallo, ich habe ein Problem mit dem Mega162. Und zwar macht er quasi nix... Ich habe schon extra eine Testplatine geätzt um einfach ein paar LED's an und auszumachen aber nix. Der Controller ist neu und es ist nix an den Fuse-Bits geändert. Ich benutze zum Programmieren den HV-Prog & AVR Studio 4.16. Als Takt nutze ich den internen Oszillator. Mein Testprogramm sieht so aus: .include "m162def.inc" ; .ORG $0000 ; ldi r16,LOW(RAMEND) out SPL,r16 ; ;ldi r16,HIGH(RAMEND) ;out SPH,r16 ; sbi DDRA,0 sbi DDRB,0 sbi DDRC,0 sbi DDRD,0 sbi DDRE,0 ; main: cbi PINA,0 cbi PINB,0 cbi PINC,0 cbi PIND,0 cbi PINE,0 ; sbi PINA,0 sbi PINB,0 sbi PINC,0 sbi PIND,0 sbi PINE,0 rjmp main Im Simulator läuft es audh seltsam, beim ausschalten der LED geht sie beim nächsten Befehl wieder an. Habe auch die DDRx mit c probiert, da klappt es im Simulator aber so auch nicht. Mit dem Stack habe ich auch schon ohne Erfolg rumprobiert...
> cbi PINA,0
dort ist aber schon klar, dass ein Port-Ausgang über PORTx angesprochen
wird und nicht über PINx ?
Machs doch nicht so kompliziert fürs erste
1 | .include "m162def.inc" |
2 | ; |
3 | .ORG $0000 |
4 | ; |
5 | ldi r16, 0xFF |
6 | out DDRA, r16 |
7 | out DDRB, r16 |
8 | out DDRC, r16 |
9 | out DDRD, r16 |
10 | |
11 | ldi r16, 0xAA |
12 | out PORTA, r16 |
13 | out PORTB, r16 |
14 | out PORTC, r16 |
15 | out PORTD, r16 |
16 | |
17 | loop: |
18 | rjmp loop |
Das setzt abwechselnd an jedem Port einen Pin auf 0 und den nächsten auf 1
Hi, DANKE! Ich habe davor gesessen mit meinem Programm was läuft und es nicht gesehen... (PIN/PORT) - jetzt funktioniert alles. Nur ein Problem habe ich noch: Der Stack-Pointer... da bekomme ich beim Assemblieren irgendwie immer einen Fehler out of adress...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.