Flag su PIC16F876A
Ciao a tutti,
ho la necessità di attivare la PORTB0 del micro "simulando un bistabile"in uscita ovvero utilizzando un flag che mi permetta di cambiare stato della porta in corrispondenza dell'incremento o decremento di una variabile .
Ho collegato un led in uscita alla portb0, ma a parte durante i 100 ms iniziali rimane spento, mentre dovrebbe accendersi all'invio da seriale di 0x61.
premetto che non sono un esperto quindi il codice non è il massimo.
ho la necessità di attivare la PORTB0 del micro "simulando un bistabile"in uscita ovvero utilizzando un flag che mi permetta di cambiare stato della porta in corrispondenza dell'incremento o decremento di una variabile .
Ho collegato un led in uscita alla portb0, ma a parte durante i 100 ms iniziali rimane spento, mentre dovrebbe accendersi all'invio da seriale di 0x61.
premetto che non sono un esperto quindi il codice non è il massimo.
- Codice: Seleziona tutto
char uart_rd;
bit oldstate;
void main() {
TRISB=0;
UART1_Init(9600);
Delay_ms(100);
PORTB=0x01;
Delay_ms(100);
PORTB=0x00;
oldstate = 0;
while (1) {
RB0_bit=oldstate;
if (UART1_Data_Ready()) {
uart_rd = UART1_Read();
if (uart_rd==0x61){
if(oldstate==0){
oldstate=1;
}
}
if (uart_rd==0x61){
if(oldstate==1){
oldstate=0;
}
}
}
}
}
