Hallo, ich versuch schon seit mehreren tagen vergebens einen PCF8547AP an einem Mega8 zum laufen zu bringen.Der Code ist im Anhang. Das ganze leuft auf einem STK500. Hab keien ahnung woran es liegen könnte. Ich kontroliere den Status über das UART. Das Prog leuft bis zum ersen auswerten des TWSR registers (bei wait1) "normal" ab. Bei der überprüfung bricht er ab und springt zu error. am terminal wird dann aber trotzdem 0x08, also der eigentlich richtige wert ausgegeben. Das Progrmm kommt original aus dem Datenblatt des Mega8. Kann vieleicht mal jemand schaun ob er eien Fehler findet? Oder liegt es vieleicht an der hardware ? Pullups und nen kondensator paralell zum PCF hab ich eingebaut. mfg Max
Hi! > in temp, TWSR > andi temp, 0xF8 > cpi temp, 0b00001000 ;0x08 > brne ERROR Das kann nicht gehen weil du $F8 mit $08 vergleichst und das ist doch wohl augenscheinlich was anderes. Also entweder $08 & $08 oder $F8 & $F8. cpi ist umgesetzt "temp" - $08 und da soll ja "null" rauskommen. muss lauten: in temp, TWSR andi temp, 0x08 cpi temp, 0b00001000 ;0x08 brne ERROR oder: in temp, TWSR andi temp, 0xF8 cpi temp, 0b11111000 ;0xF8 brne ERROR MFG Uwe
Hallo Uwe Irgendwie kann ich dir nicht ganz folgen. mit andi temp, 0xF8 erden doch einfach nur die drei unteren bits (prescaler bits)herausgefiltert. es soll nur geprüft werden, ob das 4te bit gesetzt ist oder nicht. mfg Max
Jep, Max, hast recht. Ich habe mal kurz drübergeschaut, aber noch nichts entdeckt. Wenns klappt, schaue ich mir heute abend alles nochmal an, ich habe schon mehrere TWI-Anwendungen am Laufen.
Hi! Du kannst schon alle bits ausfiltern, nur kannst du dann nicht mit cpi nur das 4.Bit prüfen weil bei cpi 8 Bit gleichzeitig getestet werden. -oder kann nur Bit3 gesetzt sein???,dann wäre es richtig. <cpi ist umgesetzt "temp" - $08 und da soll ja "null" rauskommen. ein richtiger Bittest wäre: in temp, TWSR andi temp, 0xF8 ;kann jetzt sogar weggelassen werden sbrs temp,3 ;überspr.wenn in temp Bit3 gesetzt rjmp ERROR ... habe schnell nochmal ins Datenblatt geschaut.-Du hast recht, es kann eigentlich nur Bit3 gesetzt sein -und du hast ja auch $08 über UART- Sehr eigenartig! uC-Fehler??? Bin bei 1.Antwort von mehreren gesetzten Bit's ausgegangen. MFG Uwe
CPI wird deshalb verwendet, weil die TWI-Schnittstelle verschiedene Status-Codes ausgibt. Das können auch Bitkombinationen sein, bei dieser speziellen Abfrage von $08 sieht das ein wenig unglücklich aus, ist aber so an und für sich richtig.
Hallo @thkais Danke das du dir mein programm mal anschauen wilst. Bin zwar nich tgerade am verzweifeln, aber schön langsam wurmts mich doch. mfg Max
.... die Datenblätter findet man u.a. bei Reichelt.de Suche dort den PCF8574, dann gibt es dort einen Downloadbereich. vg. gerhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.