- fchao-Sinus-Wechselrichter AliExpress    Werbung      
Ergebnis 1 bis 4 von 4

Thema: ATMEGA16 + STK500 - Lauflicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.09.2005
    Beiträge
    114
    Hallo,
    danke für Deine Antwort.

    Ich habe das Lauflicht nun so gelöst:

    Code:
    for(counter=0;counter<8;counter++){
       tmp = ~PORTB;
       tmp = 1<<counter;
       PORTB = ~tmp ;
    }
    Damit läuft das Lauflicht zumindest schonmal von rechts nach links.

    Von links nach rechts klappt es aber nicht.

    Kann es sein, dass es nicht möglich ist nach rechts zu shiften?

    Mein Ansatz als Test war der folgende:

    Code:
    PORTB = 0xFF;
     
    tmp = ~PORTB;
    tmp = (1>>2); 
    PORTB = ~tmp;
    Damit müsste das doch eigentlich klappen...
    Ergebnis: alle LEDs sind aus.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    41
    Beiträge
    3.416
    das Ergebnis bei dir ist auch nur logisch, eine Dezimale 1 entspricht 0b0000000_1_, wenn du jetzt nach rechts schiebst, fällt die 1 ins Nirvana und alles steht wieder auf 0

    was du brauchst wäre in dem Fall 0b_1_0000000 -> 0x80 -> (128>>n)

    ich geb dir mal ein beispiel für ein Lauflicht, bei dem man einfach die LED direkt manipuliert und nicht erst übern Counter geht!

    Code:
    #define LEFT 1
    #define RIGHT 2
    ...
    PORTB = 1;
    unsigned char direction  = LEFT;
    while(1)
    {
       if(PORTB == 0x80) direction = RIGHT;
       else if (PORTB == 0x01) direction = LEFT;
       else {
           if(direction == RIGHT) PORTB = (PORTB>>1);
           if(direction == LEFT) PORTB = (PORTB<<1);
           'PAUSE' // es gibt in der delay.h eine wait_ms(long) funktion mit der du millisekundenlange Pausen einbauen kannst, würde ich bei mehr Erfahrung durch eine timergesteuerte Variable ersetzen!
       }
    }
    so haste n Knight-Rider-Licht
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Ähnliche Themen

  1. Atmega16, STK500: Switch X gedrückt => LED X soll leuchten
    Von Kesandal im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 1
    Letzter Beitrag: 28.04.2011, 20:44
  2. STK500, Atmega16, UART, AVR Studio4
    Von Jimmy83 im Forum C - Programmierung (GCC u.a.)
    Antworten: 35
    Letzter Beitrag: 14.04.2010, 08:38
  3. Lauflicht
    Von Matze0001 im Forum Elektronik
    Antworten: 31
    Letzter Beitrag: 18.08.2009, 17:33
  4. Assembler Beispielprogramm fürs STK500 (ATmega16)
    Von KartoffeL im Forum Assembler-Programmierung
    Antworten: 1
    Letzter Beitrag: 14.06.2007, 13:15
  5. ATmega16 und STK500
    Von andkut im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 15.01.2005, 15:57

Berechtigungen

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

    Werbung      12V Akku bauen