Umstieg von Pic auf ATmega -> HELP!

Gast #73197
Lesenswert?

Hallo Leute!

Also beschäftige mich jetzt schon längere zeit mit PICs und will jetzt
auch mal ein wenig mit AVRs arbeiten!
Als Programmiergerät verwende ich den SmartProg von Elnec.
Mein erstes kleines Programm schaut genau so aus:

include "m16def.inc"

Init:
    ldi r16, 0xFF    ;Port B durch Ausgabe von 0xFF ins
    out DDRB, r16       ;Richtungsregister DDRB als Ausgang
konfigurieren

    ldi r16, 0xFF
    out PORTB, r16      ;PORTB auf 0xFF setzen -> alle LEDs aus

Main:
  sbi  PORTB,0
  cbi  PORTB,0
  rjmp  Main

Aber es passiert genau garnichts! Am Oszilloskop müsste der PORTB,0 Pin
ja ein Rechteckssignal ausgeben oder? Aber er ist nur auf Low! Der 2Mhz
Quarz den ich am Chip betreibe schwingt aber schön brav, sieht man im
Oszzi. Angehängt habe ich den Screenshot der Fuse bits, da ich mir mit
denen nicht so ganz sicher bin ob die so stimmen...

Vielleicht könnt ihr mir da mal schnell weiter helfen.

Danke

MfG Martin W
Angehängte Dateien:
Gast #73202
Lesenswert?

Ok es geht jetzt!

Lag am Quarz! Keine Ahnung wieso aber er hat die 2 Mhz nicht genommen,
mit einem 5 Mhz Quarz geht es jetzt!
Wann sollte man eigentlich slow rising und fast rising power bei den
cksel fuses einstellen?

Danke

MfG Martin W
Gast #73204
Lesenswert?

Der stackpointer müsste egal sein, kommen ja keine calls und ints vor.
Mich wundert eher dass obiger source fehlerfrei compiliert wird, vorm
include fehlt ein Punkt. Du solltest auch die richtige .def Datei
laden, die Portdefinitionen sind zwar gleich, aber vielleicht
unterscheiden sich andere Speicherstellen.
Ist der obige Code alles oder nimmst du noch andere Initialisierungen
vor?

grüsse leo9
Gast #73206
Lesenswert?

sorry, aber ich kann auch nicht alle avrs auswendig, für den mega161
würde ich die m161def.inc verwenden. Die exakten Unterschiede findest
du im Datenblatt, möglicherweise unterscheiden sie sich aber durch die
Speichergröße und dann wirds zum Stack-Initialisieren wieder wichtig
die richtige zu verwenden.

grüsse leo9

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren