- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 5 von 5

Thema: Ports schalten in CodevisionAVR

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.07.2013
    Beiträge
    11

    Ports schalten in CodevisionAVR

    Hallo,
    versuche mich in Micro-Controller Programmierung.
    Schon am Anfang habe ich eine Frage.

    Warum funktioniert dieses Programm nicht?

    Code:
    while (1)
          {
          PORTA=(1<<PORTA0)|(1<<PORTA3);//rot anmachen  
          
          delay_ms(3000);  //warten 3sec
    
          PORTA=(1<<PORTA1)|(1<<PORTA4) //gelb dazu anmachen <-- wird zwar gemacht aber rot geht aus
    
          // PORTA=(1<<PORTA1)|(1<<PORTA4)|(1<<PORTA0)|(1<<PORTA3); <---das hingegen funktioniert
    
          delay_ms(1000);    //warten 1sec
          PORTA=(0<<PORTA0)|(0<<PORTA3); //Rot und
          PORTA=(0<<PORTA1)|(0<<PORTA4); //gelb ausmachen 
          PORTA=(1<<PORTA2)|(1<<PORTA5);  //Grün anmachen
          delay_ms(3000) ;           //Warten 3sec
          PORTA=(1<<PORTA1)|(1<<PORTA4)|(1<<PORTA2)|(1<<PORTA5);  //Gelb anmachen <--dito
          delay_ms(1000);            //Warten 1 sec  
          PORTA=(0<<PORTA2)|(0<<PORTA5);  //grün ausmachen   
          
          
    
          }
    Ganz einfache Schaltung: Rot-> 3 sek->Gelb DAZU->1 sek->Rot u. Geld aus->Grün->3 sek->Gelb dazu->1 sek Grün und Gelb aus.(Das ganze zwei mal,zwei Ampeln quasi)

    Mein Problem ist in der Zeile Nummer 5(für Grün dito). Rot ist schon an,ich will nun Geld dazu schalten.Gelb wird auch zugeschaltet,aber leider geht dann Rot aus.

    Ist das die Eigenschaft von Controllern?Oder mache ich einen Denkfehler?

    Vielen Dank!

    P.S: Ich schreibe in CodevisionAVR für Mega16. Als Simulator benutze ich Proteus. Leider habe ich noch keine Hardware (ist aber bestellt).Liegt es vlt an der Simulation?Wird das ,so wie ich das will, auf der echten Hardware funktionieren?


    EDIT: Ach nun ist mir das wohl von alleine klar gewordenso ziemlich direkt nach dem klicken auf "Abschicken"....

    Code:
    PORTA=(1<<PORTA0)|PORTA=(1<<PORTA1)
    ist wohl nichts anderes als
    Code:
    PORTA=0b00000011;
    Deswegen setzt die Zeile Nummer 5 die beiden Ports von ROT wieder auf 0..
    Liege ich damit richtig?
    Also bleibt als Lösung immer neu zuweisen ?
    Code:
     PORTA=(1<<PORTA1)|(1<<PORTA4)|(1<<PORTA0)|(1<<PORTA3);
    Geändert von Cheffe Boss (02.08.2013 um 12:44 Uhr) Grund: Die Lösung?

Ähnliche Themen

  1. IO Ports
    Von sputnik265 im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 18.03.2009, 15:17
  2. IO-Ports
    Von Luki.B. im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 25.10.2008, 13:13
  3. IO ports
    Von blenderkid im Forum Robby RP6
    Antworten: 7
    Letzter Beitrag: 13.11.2007, 15:12
  4. AD Ports
    Von CodeWarrior im Forum AVR Hardwarethemen
    Antworten: 28
    Letzter Beitrag: 24.02.2006, 16:54
  5. A/D-Ports
    Von mgsimon im Forum Robby CCRP5
    Antworten: 5
    Letzter Beitrag: 10.03.2004, 21:32

Berechtigungen

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

12V Akku bauen