Z
zkt
Guest
Le code suivant fonctionne bien lorsque la valeur de morsure est mis à l'intérieur du I2C_send_byte procédure Sub. Mais lorsqu'il est réglé avant d'appeler le sous, sda ne change pas lorsque le code s'exécute dans le sous. Et les changements SCL bien à l'intérieur et l'extérieur du sous-marin. Sur les deux façons d'écrire la ligne si ni l'un travaille. Je suis coincé. Toute aide appréciée.
Code:
programme de dimanche «pic 16F87 mordent faible, peu, tmp As Byte 'tda_adr const As octet =% 10001000 I2C_send_byte procédure sub' mordent% = 10101010 excluant cette ligne provoque sda à ne pas changer pour bit = 0 à 7 = 0 TRISB delay_us (50) «Si ((morsure et 128) = 128) Ensuite, si mordre et 128 = 128 = 128, puis Trisa 'set TDA haute si le courant est élevé bits tda_data ailleurs Trisa = 0' fin TDA ailleurs mis bas Si mordre mordre PORTB = est sortie. Depuis PORTB = 0 = 0 logique portb.7 Trisa = 128 delay_us (50) Trisa = 0 'TRISB = 128 => portb.7 est entré. avec rien à tirer le delay_us basse tension (50) »Rpu va se tirer la haute tension et haute TRISB portb.7 = = 0 retour i2c_stop: delay_us (50) TRISB = 1 = 0 Trisa delay_us (50) = 128 Trisa delay_us ( 50) Fin de retour.