Forum: Mikrocontroller und Digitale Elektronik LEDs vom AT90USB wollen nicht blinken


von Hanh S. (stryke)


Lesenswert?

Hallo zusammen,

da ich gerne mal ein Projekt mit einem Mikrokontroller machen wollte, 
habe ich mir den Mikrokontroller + USB-Anschluss AT90USB von Atmel 
geholt. Nun habe ich vorgehabt als Einstieg die LEDs des Demo-Kits zum 
blinken zu bringen. Dazu habe ich auf 
http://www.avrfreaks.net/wiki/index.php/Documentation:Tutorials_gcc_AT90UsbKey 
den Quelltext kopiert und ins Programm eingefügt.




#include <avr/io.h>

#include "my_bit.h"
#include "my_types.h"

//300 ~ 3s
//100 ~ 1s
#define SLEEP_TIME 25

void stupid_sleep(uInt time){
  uInt i = 0;
  uInt j = 0;
  for(i=0;i<time;i++){
    for(j=0;j<530;j++){
      //Do nothing
      asm volatile ("NOP");
    }
  }
}

int main(void){

  //The AT90USBKey includes 2 bi-color LEDs (green/red) implemented on 
one line.
  //They are connected to the high nibble of Port D of AT90USB 
(PORTD[4..7]).
  //To light on a LED, the corresponding port pin must drive a high 
level.
  //To light off a LED, the corresponding port pin must drive a low 
level.

  //Set portD pins 4..7 to output mode (this doesn't set what the output 
will be)
  DDRD SET_BIT4;
  DDRD SET_BIT5;
  DDRD SET_BIT6;
  DDRD SET_BIT7;


  while(1){

    PORTD SET_BIT4;      //Drive portD pin 4 high
    stupid_sleep(SLEEP_TIME);
    PORTD CLEAR_BIT4;    //Drive portD pin 4 low

    PORTD SET_BIT5;
    stupid_sleep(SLEEP_TIME);
    PORTD CLEAR_BIT5;

    PORTD SET_BIT7;
    stupid_sleep(SLEEP_TIME);
    PORTD CLEAR_BIT7;

    PORTD SET_BIT6;
    stupid_sleep(SLEEP_TIME);
    PORTD CLEAR_BIT6;
  }
}




Nach dem Start des Programms sehe ich auch im I/O View Fenster, dass die 
bits an den richtigen Port übergeben werden.

Mein Problem jetzt ist, dass ich nachdem ich den µC geflasht habe keine 
blinkenden LEDs bekomme...

Bin für jeden Lösungsvorschlag offen

von Stefan Salewski (Gast)


Lesenswert?

>Mein Problem jetzt ist, dass ich nachdem ich den µC geflasht habe keine
>blinkenden LEDs bekomme...

Du hast den USBKEY?

Der hat doch gar keinen Anschluss für ein Programmiergerät?
Bei dem wird doch das Programm über USB mit dem Windows-Programm Flip 
oder unter Linux mit dfu-programmer aufgespielt.

Oder habe ich dich falsch verstanden?

von Hubert G. (hubertg)


Lesenswert?

Im Datenblatt Seite 382 ist das "Serial Downloading" über die SPI-Pin 
beschrieben.

von Hanh S. (stryke)


Lesenswert?

Ja sry, hab vergessen das Programm Flip zu erwähnen. Über diese Software 
habe ich den USBKey geflasht.

von Hanh S. (stryke)


Lesenswert?

Hab den Fehler gefunden. Im AVR Studio 4 Programm war der falsche µC 
ausgewählt.

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.