Gast
#116027
Hallo ich wollte mit dem 90s1200 über i2c einen LM75 auslesen. ich habe das AVR300.asm genommen und diesen aufruf gemacht ldi i2cadr,$90+i2cwr ; Set device address and write rcall i2c_start ; Send start condition and address ldi i2cdata,$00 ; Write word address rcall i2c_do_transfer ; Execute transfer ldi i2cadr,$90+i2crd ; Set device address and read rcall i2c_rep_start ; Send repeated start condition and address clc rcall i2c_read ; Execute transfer (read) mov temp5,i2cdata sec rcall i2c_read ; Execute transfer (read) mov zahl3,i2cdata rcall i2c_stop ; Send stop condition - releases bus der 1. read befehl bringt mir wie gewünscht die temperatur beim 2. read befehl solte das bit 7 0,5 grad anzeigen - ich bekomme aber immer nur eine 0. was mach ich beim 2. aufruf falsch? - wird der ack falsch gesendet ?