Forum: Mikrocontroller und Digitale Elektronik ATmega8 startet nicht


von Alexander (Gast)


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

von Ralph Dillhardt (Gast)


Lesenswert?

Hi,

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

MfG
Ralph

von Alexander (Gast)


Angehängte Dateien:

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

von Ralph Dillhardt (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.