mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Initialisierung Mega162


Autor: Sebastian F. (snake080)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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
.include "m162def.inc"
;
.ORG $0000
;
   ldi r16, 0xFF
   out DDRA, r16
   out DDRB, r16
   out DDRC, r16
   out DDRD, r16

   ldi r16, 0xAA
   out PORTA, r16
   out PORTB, r16
   out PORTC, r16
   out PORTD, r16
   
loop:
   rjmp loop

Das setzt abwechselnd an jedem Port einen Pin auf 0 und den nächsten auf 
1

Autor: Sebastian F. (snake080)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.