Z
zkt
Guest
El siguiente código funciona bien cuando el valor de la mordedura se establece dentro de la I2C_send_byte procedimiento secundario. Pero cuando se establece antes de llamar al sub sda, no cambia cuando el código se ejecuta en el submarino. Y SCL cambios correctamente dentro y fuera de la sub. De las dos maneras de escribir la línea si ninguno funciona. Estoy atascado. Cualquier ayuda se agradece.
Code:
programa dominical 'pic 16F87 débil mordida, bit, byte tmp como' tda_adr const tenue como byte =% 10001000 I2C_send_byte procedimiento sub 'mordida% = 10101010 excluir esta línea hace sda para no cambiar de bit = 0 y 7 TRISB = 0 delay_us (50) 'If ((mordida y 128) = 128) Entonces, si la mordedura y 128 = 128 = 128 entonces TRISA' set tda poco alto si tda_data actual es más alto TRISA = 0 'else set final tda bajo si mordedura picadura portb = es la salida. desde portb = 0 = 0 lógico portb.7 TRISA = 128 delay_us (50) TRISA = 0 'TRISB = 128 => portb.7 es de entrada. sin nada para tirar de los delay_us de baja tensión (50) "RPU se tire la alta tensión y alta portb.7 = TRISB = 0 retorno i2c_stop: delay_us (50) TRISB = 1 TRISA = 0 delay_us (50) TRISA = 128 (delay_us 50) return end.