mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega8 startet nicht


Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Hab einen ATmega8, den ich mit Hilfe von Pony beschreiben will.
Das schreiben, lesen und lesen funktioniert schon ganz gut. Nach dem
Schreiben trenn ich den ATmega8 vom isp aber nichts tut sich. Weder die
an PB0-PB5 angeschlossenen LED leuchten noch verschwindet der Balken an
meinem 2*16 LCD. An was kann das liegen ist der EEPROM defekt, oder bin
ich nur zu doof??

mfg Xeus

Autor: Ralph Dillhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ein bischen wenig Info's.
Wie sieht deine Schaltung bzw. dein Programm aus?

MfG
Ralph

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

Bewertung
0 lesenswert
nicht lesenswert
Hab an PB0-PB5 die LED's angeschlssen und über PD0-PD5 kann ich Taster
betätigen. Das ganze hab ich dem Tutorial entnommen.Das prog
Led-test.asm stammt ebenfalls von dieser Seite. Wenn ich nun was in das
Flash bzw eeprom schreibe das isp trenne, passiert garnichts, ich kann
die taster drücken wie ich will nichts tut sich.Schließ ich das isp
wieder an kann ich die daten wieder ohne weiteres auslesen.

gruß
xeus

Autor: Ralph Dillhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja,

ich gehe mal davon aus das dein Hardwareaufbau OK ist.

Dein Programm sollte in etwa wie folgt anfangen:

;*********************************************************************
;         AVR - Testboard
;
;*********************************************************************

;***** Directives
.device atmega8

.def temp1 = r16
.def temp2 = r17
.def temp3 = r18

;---------------------------------------------------------------------
;Interrupt vector table - ATmega8
;---------------------------------------------------------------------
  rjmp  reset  ; Reset Handler
  reti    ; External Interrupt0 Handler
  reti    ; External Interrupt1 Handler
  reti    ; Timer2 Compare Handler
  reti    ; Timer2 Overflow Handler
  reti    ; Timer1 Capture Event Handler
  reti    ; Timer1 CompareA Handler
  reti    ; Timer1 CompareB Handler
  reti    ; Timer1 Overflow Handler
  reti    ; Timer0 Overflow Handler
  reti    ; SPI Transfer Complete Handler
  reti    ; USART Rx Complete Handler
  reti    ; USART Data Register Empty Handler
  reti    ; USART Tx Complete Handler
  reti    ; ADC Conversion Complete Handler
  reti    ; EEPROM Ready Handler
  reti    ; Analog Comparator Handler
  reti    ; Two-wire Serial Interface Handler
  reti    ; Store Program Memory Ready Handler

;--------------------------------------------------------------------

;---------------------------------------------------------------------
;Konfigurieren der IO-Register
;0xFF bedeutet alle Pins auf Ausgabe, 0x00 bedeutet Eingabe
;---------------------------------------------------------------------

konfMCU:

;Belegung von PortB
;Bit0  ==> LED 1
;Bit1  ==> LED 2
;Bit2  ==> LED 3
;Bit3  ==> LED 4
;Bit4  ==> LED 5
;Bit5  ==> LED 6
;Bit6  ==> frei
;Bit7  ==> frei

        ldi r16, 0b11111111  ;0b11111111 in r16 laden
  out DDRB, r16    ;Inhalt von r16 ins IO-Register DDRB ausgeben


;Belegung von PortD
;Bit0 <==  Taster 1
;Bit1 <==  Taster 1
;Bit2 <==  Taster 1
;Bit3 <==  Taster 1
;Bit4 <==  Taster 1
;Bit5 <==  Taster 1
;Bit6 <==  frei
;Bit7 <==  frei

  ldi r16, 0b00000000  ;0b00000000 in r16 laden
  out DDRD, r16    ;Inhalt von r16 ins IO-Register DDRD ausgeben

  ret            ;Setuproutine beenden

;Konfigurieren der IO-Register ende
;---------------------------------------------------------------------

;---------------------------------------------------------------------
;Stack anlegen
;---------------------------------------------------------------------
reset:
  ldi      temp1, LOW(RAMEND)
  out      SPL, temp1               ; Initialize SPL
  ldi      temp1, HIGH(RAMEND)
  out      SPH, temp1               ; Initialize SPH

;Stack anlegen ende
;---------------------------------------------------------------------

  rcall konfMCU      ; Port B auf Ausgang, Port D auf Eingang

loop:
  ; hier sollte dein Programm stehen!

  rjmp loop        ; Endlosschleife



Viel Glück

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.