mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Umstieg von Pic auf ATmega -> HELP!


Autor: Martinw (Gast)
Datum:
Angehängte Dateien:

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

Autor: Dieter B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Stackpointer einstellen ?

MFG
Dieter

Autor: Martinw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm Stackpointer!?
Was wo wie??? Ich mich nix auskennen mit AVR!!!
Ach ja handelt sich um einen ATMEGA161!

Danke

MfG Martin W

Autor: Fritz Ganter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin!

Mach mal zwischen
sbi  PORTB,0
und
cbi  PORTB,0
ein paar NOPs rein.

Autor: Martinw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Nops helfen auch nichts, das oszilloskop müsste übrigens so hohe
Frequenzen noch leicht schaffen...

MfG Martin W

Autor: Martinw (Gast)
Datum:

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

Autor: Fritz Ganter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm mal die Zeile
 cbi  PORTB,0
raus, und schau, ob der Ausgang dann auf High bleibt.

Autor: leo9 (Gast)
Datum:

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

Autor: Martinw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Nein der Punkt ist nur beim Kopieren verschwunden ;-) also ich bekomme
schon eine richtige Hex file!
Aber .include "m16def.inc" passt doch für den ATMEGA161 oder nicht?

MfG Martin W

Autor: leo9 (Gast)
Datum:

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

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.