ATMEGA8 und PCF8574P

Gast #930714
Lesenswert?

Moin,
ich bin hier bei meinen ersten Gehversuchen mit i2c. Aber ich komme 
nicht mehr weiter. Folgenden Quellcode habe ich erstellt. Nur leider 
gibt der pcf8574p nichts aus.
Kann einer von euch sehen ob da irgendwo ein Bock drinn ist ? 
Hardwaremäßig müsste alles richtig angeschlossen sein incl. 
pullupwiderstände

würd mich freuen wenn wer nen Tipp hat
danke Henning
1
#include<util/delay.h>
2

3

4
int sendByte(unsigned char datenbyte, unsigned char adresse)
5
{
6
  DDRC &= !((1<<DD4)|(1<<DD5));
7
  PORTC = (1<<DD4)|(1<<DD5);
8

9
  TWCR = ((1<<TWINT)|(1<<TWSTA)|(1<<TWEN));    //TWI aktivieren und Start auslösen
10
  while(!(TWCR & (1<<TWINT)));          // warten auf Start
11

12

13
  TWDR = adresse & (0xFE);            // Adresse und Schreibbit ins Datenregister
14
  TWCR = ((1<<TWINT)|(1<<TWEN));          // senden ...
15
  while(!(TWCR & (1<<TWINT)));
16

17

18
  TWDR=datenbyte;                  // Byte ins Datenregister
19
  TWCR = ((1<<TWINT)|(1<<TWEN));          // senden ...
20
  while(!(TWCR& (1<<TWINT)));            
21

22

23
  TWCR = ((1<<TWINT)|(1<<TWSTO)|(1<<TWEN));    // Stop
24
  return 1;
25
}
26

27

28

29
void main (void)
30
{
31
  unsigned char i;
32
  i=0x01;
33
  while(1)
34
  {
35
    if(i==0x80) i=0x01;
36
    else i<<=1;
37

38
    _delay_ms(150);
39

40
    sendByte(i,0);
41
  }
42
}
#931561
Lesenswert?

nun... zugegeben ich kenn mich mit C programmierung nicht wirklich gut 
aus und da ich jetzt auch nicht die Definitionen deiner var. und const 
sehe. kann ich nur schwer folgen, was du meinst.

nur soviel, ich hatte das gleiche Problem mit nem anderen PIC bis mir 
denne auffiehl, das der von mir verwendetet Pic kein I²C kann ^^...

aber ein kleiner Gedankenanstoß konnte dir geg. die Seite Pic-Basic.de 
geben...

Gruß Speedy

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren