Bonjour tout le monde,
j'apprends la programmation du c, voici mon code pour convertir une valeur analogique et envoyer le resultat sur port b et c du pic16f887.
j'ai essayé le code et simuler sous proteus et ca marche. Le hic, c'est que j'ai ajouté un interrupteur sur RD7 ( pin30) je voulais que le CAD se met en marche si RD7 (pin30)
passe a zero, ce qui est pas le cas, le convertisseur converti sans tenir compte de l'interrupteur. fermé ou ouvert il converti. voici mon code. Merci d'avance si qqn peut m'aider.
Code:unsigned int adc; void main() { ADCON1 = 0x80; TRISA = 0xFF; // PORTA is input TRISC = 0; // Pins RC7, RC6 are outputs TRISB = 0; // PORTB is output TRISD = 1; // PORTB is input PORTB = 0; //LED OFF ADC_Init(); //Initializes ADC Module do { if(PORTD.F7 == 0) ; //If the switch is pressed { Delay_ms(100); //Switch Debounce if(PORTD.F7 == 0);//If the switch is still pressed { adc = ADC_Read(1); // Get 10-bit results of AD conversion //of channel 1 PORTB = adc; // Send lower 8 bits to PORTB PORTC = adc >> 8; // Send 2 most significant //bits to RC0, RC1 } } } while(1); }
-----