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

Thema: PCF8574 - Mal wieder...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    So vielleicht:

    Code:
      if(setOrDel==0)                   //wenn Variable 0 ist
      {
        ports = (ports & ~(1<<port));    //Pin löschen
      }
      else
      {
        ports = (ports | (1<<port));    //sonst (z.B. bei 1) Pin setzen
      }
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    74
    Beiträge
    11.077
    Hallo!

    Ich kenne Cäh gar nicht, aber einzelne Bits, ohne andere zu beeinflüssen, löscht man mit 0 in AND und setzt mit 1 in OR, was der radbruch angeblich schon in Cäh formuliert hat, was ich aber nicht checken kann.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    & ist bitweises Und, | ist bitweises Oder, ~(Tilde) bedeutet bitweises Invertieren in Cäh:

    http://www.rn-wissen.de/index.php/C-...Bit-Operatoren
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    74
    Beiträge
    11.077
    Vielen Dank für deine extra Erklärung

    Für mich ist aber die C-Programiersprache künstlicher als meine eigene KI.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  5. #5
    Hallo radbruch,
    danke, so funktioniert es schon sehr viel besser, es gibt aber immer noch ein paar Probleme:
    So:
    Code:
    setPortPCF8574(0x70,4,1);
    
        _delay_ms(500);
        setPortPCF8574(0x70,4,0);
        _delay_ms(500);
        setPortPCF8574(0x70,4,1);
        _delay_ms(500);
        setPortPCF8574(0x70,4,0);
        _delay_ms(500);
        setPortPCF8574(0x70,4,1);
        _delay_ms(500);
    Blinkt die LED an P4, so, wie es sein sollte.
    Hier:
    Code:
    setPortPCF8574(0x70,4,1);
        _delay_ms(500);
        setPortPCF8574(0x70,5,1);
        _delay_ms(500);
        setPortPCF8574(0x70,6,1);
        _delay_ms(500);
        setPortPCF8574(0x70,7,1);
        _delay_ms(500);
        setPortPCF8574(0x70,7,0);
        _delay_ms(500);
        setPortPCF8574(0x70,6,0);
        _delay_ms(500);
        setPortPCF8574(0x70,5,0);
        _delay_ms(500);
        setPortPCF8574(0x70,4,0);
        _delay_ms(500);
    hängt sich der ATmega8 aber beim Ausschalten der LEDs auf. So:
    Code:
    setPortPCF8574(0x70,4,1);
    
        _delay_ms(500);
        setPortPCF8574(0x70,5,1);
    
        _delay_ms(500);
    
        setPortPCF8574(0x70,6,1);
    
        _delay_ms(500);
    
        setPortPCF8574(0x70,7,1);
    
        _delay_ms(500);
    
        
        i2c_start_wait(0x70 + I2C_WRITE);     
        i2c_write(0xff); 
    
        i2c_stop();
    
        setPortPCF8574(0x70,7,0);
    
        _delay_ms(500);
        setPortPCF8574(0x70,6,0);
    
        _delay_ms(500);
    
        setPortPCF8574(0x70,5,0);
    
        _delay_ms(500);
    
        setPortPCF8574(0x70,4,0);
    
        _delay_ms(500);
    gehen die, nachdem alle eingeschaltet wurden, alle ordnungsgemäß aus. Das Programm hängt sich aber nicht auf. Wie gesagt, alles etwas merkwürdig...
    Danke und
    Viele Grüße
    teamohnename

Ähnliche Themen

  1. LCD am PCF8574
    Von Track im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 16.03.2010, 23:38
  2. INT vom PCF8574
    Von TrainMen im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 28.06.2009, 22:20
  3. I2C Bus Steuerung PCF8574
    Von Beta im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 13.06.2008, 21:21
  4. 2x I²C PCF8574
    Von DEAF BOY im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 03.09.2007, 18:01
  5. PCF8574
    Von bertl100 im Forum AVR Hardwarethemen
    Antworten: 7
    Letzter Beitrag: 22.04.2006, 13:12

Berechtigungen

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

12V Akku bauen