-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: LEDs Blinken statt einfach zu leuchten.

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.05.2004
    Ort
    Hannover
    Beiträge
    414

    LEDs Blinken statt einfach zu leuchten.

    #include <avr/io.h>

    int main(void)
    {
    DDRA=0xff;
    PORTA=0xff;
    DDRB=0xff;
    PORTB=0x0;
    DDRC=0xff;
    PORTC=0x0;
    DDRD=0xff;
    PORTD=0x0;
    DDRE=0xff;
    PORTE=0x0;
    DDRF=0xff;
    PORTF=0x0;
    DDRG=0xff;
    PORTG=0x0;
    for (; {}
    }

    Normalerweise sollte dies Programm einfach durchlaufen und die LEDs an Port A zum leuchten bringen und dann in der Endlosschleife bleiben. Allerdings blinken die LEDs die ganze zeit woran kann das liegen? Ich könnte mir vorstellen das das Programm immer wieder von vorne gestartet wird anstatt in der endlosschleife zu bleiben aber warum?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.09.2004
    Beiträge
    471
    Ich würde statt
    for(;;){}
    while(1){}
    probieren.

    Eine For - Schleife ist eigentlich keine Endlosschleife.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    29
    Beiträge
    674
    eigentlich hast du recht, aber for(;{} dürfte schon das gleiche bewirken wie while(1){}, denn normalerweise gibt man bei for-Schleifen noch Bedingungen an, wenn man die allerdings wie oben gezeigt weglässt, hat man auch eine Endlosschleife

    berichtigt mich, wenn ich falsch liege

    Edit: denkt euch meine for-Schleife wie die vorherigen, der Smilie ist ungewollt...

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.05.2004
    Ort
    Hannover
    Beiträge
    414
    wit der while schleife blinkts immer noch ....

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    29
    Beiträge
    674
    vielleicht ist der Grund ja eher in der Hardware zu suchen...
    oder, was mir grad eingefallen ist, mit welchem µC arbeitest du?
    vielleicht ist da ja der Watchdog standartmäßig an und wenn man ihn nicht regelmäßig auf 0 setzt, löst er einen Reset aus...

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.05.2004
    Ort
    Hannover
    Beiträge
    414
    Mit einem ATmega128 16AI ... wie kann ich den Watchdog denn aus machen?

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    29
    Beiträge
    674
    ich hab im Datenblatt für einen ATMEGA8 nachgeschaut und folgendes herausgefunden:

    To disable an enabled Watchdog Timer, the following procedure must be followed:
    1. In the same operation, write a logic one to WDCE and WDE. A logic one must be written to WDE even though it is set to one before the disable operation starts.
    2. Within the next four clock cycles, write a logic 0 to WDE. This disables the Watchdog.

    WDE und WDCE sind Bits im WatchDogTimerControlRegister WDTCR

    allerdings ist das vielleicht beim 128er anders...musst mal im Datenblatt nachschauen

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    17.09.2004
    Ort
    Göttingen
    Beiträge
    17
    Meine Vermutung :
    for(;{}
    while(1){}

    werden vom Compiler weg-optimiert...

    wie wäre es mit:
    while(1) asm volatile("nop");

    dann NOPed er die ganze Zeit.

    Ich hätte ein ähnliches Problem als ich in Assembler programmiert habe...
    Als das Programm durchgelaufen ist hat sich mein AVR immer resetted - dadurch führte er das programm immer wieder aus...

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.05.2004
    Ort
    Hannover
    Beiträge
    414
    Bei mir gibt es nur WDTON ... naja werd mal das datenblatt durchsuchen

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.05.2004
    Ort
    Hannover
    Beiträge
    414
    Genau daran lags ... danke ... und du hast damit auch noch gleich ein anderes problem im Elektronikforum von mir gelöst die pins tuns jetzt normal ...

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •