PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit der kommerziellen Version der I2Cslave Library



sato
15.01.2010, 21:56
Hallo

Ich benutze die Kommerzielle Version von der MCS I2cslave library um Daten von den master zum slave su senden. Beide Platinen sind mit den Atmega2561 bestückt.

Ich habe nun den code im Master etwas geändert so das die Bytes immer im Interval von 10 Sekunden gesendet werden, und sie da, der Print Befehl in der ISR routine I2c_master_has_data: wird jedesmal 10 in 10 Sekunden mit den empfangenen Byte ausgeführt. Also, nach dem Empfang des ersten Byte wird nicht mehr zum Do Loop zurück gekehrt, es wartet in der ISR routine auf den nächsten Byte, das kann nicht richtig sein!!!

Hat jemand eine Idee?

Grüsse
Sato

'Slave Teil

Config I2cslave = &H82 , Int = Int0 , Timer = Timer0
Dim Bfake As Byte

Do
'Die Print Anweisung wird hier immer durchgeführt fals kein Byte
'von Master empfangen wird
Print #1 , "Byte Geted " ; Hex(bfake)
Loop

I2c_master_has_data:
Bfake = _a1
'Nach den ersten empfangenes Byte, wird diese Routine nicht mehr
'zum Do Loop verlassen, es wird schön brav in 10 in 10 Sekunden
'der empfangene Byte mit Print angezeigt. Das sollte doch nicht sein
Print #1 , "Get_received " ; Hex(bfake)
Return

peterfido
16.01.2010, 21:19
Nach dem Printbefehl muss bfake wieder geleert werden. bfake=""