www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programm auf Atmega 16 läuft nicht


Autor: AtMega Neuling braucht Hlife :-) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo hallo,

also ich als abslouter AtMega16 neuling brauch mal etwas Hilfe. Ich hab 
ein Programm in Assembler geschrieben, ich möchte damit vier AtTiny13 
ansteuern. In der Debugging Simulation von den AVR Studios läuft das 
ganze auch optimal aber wenn ich das ganze auf den µC brenne geht gar 
nichts. Hier ist mal der Quellcode...
 ;Steuerung der AtTiny13  

  .include "m16def.inc"

  rjmp Anfang

Anfang:
  sbi ddrb,0    ;Definition der Ausgänge über Datenrichtungsbit
  sbi ddrb,1
  sbi ddrb,2
  sbi ddrb,3
  cbi ddrb,4
  sbi portb,4    ;Pullup am Eingang PIN4

  ldi r20, HIGH(RAMEND)            ; HIGH-Byte der obersten RAM-Adresse
    out SPH, r20
    ldi r19, LOW(RAMEND)             ; LOW-Byte der obersten RAM-Adresse
    out SPL, r20


;____________________________________________________________________________

Programm:      ;Hauptprogramm
  sbi portb,0 
  sbi portb,1
  sbi portb,2
  sbi portb,3
  sbic pinb,4
  rjmp Schleife
  rjmp Programm

Schleife:
  cbi portb,0
  rcall Zyklus
  sbi portb,0
  rcall Warten
  cbi portb,2
  rcall Zyklus
  sbi portb,2
  rcall Warten
  cbi  portb,1
  rcall Zyklus
  sbi portb,1
  rcall Warten
  cbi portb,3
  rcall Zyklus
  sbi portb,3
  rcall Warten
  rjmp Programm

;____________________________________________________________________________

Warten:        ;Warteschleif
  ldi r16,2
Warten1:
  ldi r17,255
Warten2:
  ldi r18,255
Warten3:
  ldi r19,255

Warten4:
  dec r19
  brne Warten4
  dec r18
  brne Warten3
  dec r17
  brne Warten2
  dec r16
  brne Warten1
  ret

Zyklus:
  ldi r22,255
Zyklus1:
  dec r22
  brne Zyklus1
  ret
 

Vielen Dank im Voraus...

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und was geht nicht?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AtMega Neuling braucht Hlife :-) schrieb:
> aber wenn ich das ganze auf den µC brenne geht gar nichts.
Hast du deine Hardware schon mal irgendwie gestestet?
Z.B. mit einer blinkenden LED?

BTW:
> rjmp Anfang
> Anfang:
Sieh dir mal an, wie diese Initialisierungssequenz bei anderen 
aussieht...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Mindestens ein Fehler:

>   ldi r19, LOW(RAMEND)             ; LOW-Byte der obersten RAM-Adresse
>   out SPL, r20

MfG Spess

Autor: AtMega Neuling braucht Hlife :-) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

danke für die raschen Antworten. Also Hardware hab ich getestet und hab 
ne LED blinken lassen. :-) Ich werde den angesprochen Fehler mal 
korrigieren und mal schauen was passiert..

Die Sequenz
rjmp Anfang
Anfang:

wurde in der Literatur empfohlen. Werde mal Alternative probieren

Vielen Dank
Sven

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AtMega Neuling braucht Hlife :-) schrieb:
> Die Sequenz
> rjmp Anfang
> Anfang:
> wurde in der Literatur empfohlen. Werde mal Alternative probieren
Ja schon, aber Sinn macht das nur, wenn da noch eine ORG Anweisung 
dabeisteht, damit über die Interruptvektoren weggesprungen wird...

> Werde mal Alternative probieren
Naja, mir ging es eher darum, dich anzuregen, was diese Anweisungen 
machen... :-/

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>wurde in der Literatur empfohlen. Werde mal Alternative probieren

Normalerweise liegt aber zwischen dem 'rjmp Anfang' und 'Anfang:' die 
Interruptvektortabelle. In deinem Fall ist das 'rjmp Anfang' sinnfrei.

MfG Spess

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.