Forum: Mikrocontroller und Digitale Elektronik Problem mit Atmega664 LEDs blinken zu lassen


von Seba (Gast)


Lesenswert?

Mein Atmega644 wird mit folgendem Code betrieben und hängt an einem 
20Mhz quarz, trotzdem blinkt die LED nicht...
Lösungsvorschläge?


#define F_CPU 20000000

#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>

//Prototypen
void sleep_ms(uint16_t ms);

//LED Defines
//Hier müssen die richtigen Angaben hin
#define LED_DDR    DDRD        //DDRA, DDR6B...
#define LED_PORT  PORTD       //PORTA, PORTB...
#define LED_PORTPIN  PD6         //PA0, PA1..., PB0, PB1..., ...

int main(void){
  /*Den Pin wo die LED angeschlossen
      ist als Ausgang setzen
   */
  LED_DDR |= (1<<LED_PORTPIN);

  //Die LED die ganze Zeit an und aus schalten
  while(1){
    LED_PORT |= (1<<LED_PORTPIN);  //Den Portpin auf high setzen
    sleep_ms(1000);  //1sek warten
    LED_PORT &= ~(1<<LED_PORTPIN);  //Den Portpin auf low setzen
    sleep_ms(1000);  //1sek warten
  }
}

/*  Diese Funktion lässt den Controller
    "ms" Millisekunden warten.
  Die while-Schleife wird so oft durchlaufen,
  wie der Funktion übergeben wurde.
  Bei jedem Duchlauf wir noch 1ms gewartet.
*/
void sleep_ms(uint16_t ms){
  while(ms){
    ms--;
    _delay_ms(1);
  }
}

von Kurt (kurtcontroller)


Angehängte Dateien:

Lesenswert?

Hier ein Hexfile von deinem Programm. Funktioniert ohne Probleme,
Fuses beachten.

Gruß


Kurt

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.