ATmega8 startet nicht

Gast #107533
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
Gast #107535
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
Angehängte Dateien:
Gast #107536
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

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