Visualizza messaggio singolo
Vecchio 29 novembre 10, 17:43   #98 (permalink)  Top
elicottero78
User
 
L'avatar di elicottero78
 
Data registr.: 14-05-2005
Residenza: bergamo
Messaggi: 1.278
ciao,sono ancora qua con la mia ignoranza,avrei bisogno ancora di aiuto e gia vi chiedo scusa x tutte le rotture che vi do.

ho fatto un programmino prova x far accendere delle luci tramite radio comando,praticamente quando alzo lo stic della radio faccio accendere due let intermittenti,ma se mentre lo stic è alto,spengo la radio queste 2 rimangono accese,invece io voglio che si spenga tutto e che rimanga un solo led che si accenda x un secondo e si spenga x un secondo,ma facendo varie prove,non riesco a far spegnere i 2 led intermittenti.

è come se mentre spengo la radio,resti in memoria del pic l ultimo valore del trm0 e di conseguenza continua a fare quello che deve senza mai smettere

ho messo un if x dire al pic,se portb.f0 è spento (fonte dell intterupt) ,azzera il trm0 e se trm0 è a 0 fai lampeggiare il led a cadenza di un secondo,ma non succede nulla

ecco il programma


void main() {
trisa=0;
trisb=0b00000001;
porta=0;
portb=0;
OPTION_REG.T0CS = 0; //imposto l'utilizzo del clock
OPTION_REG.PSA = 0; //imposto il tipo di prescaler da utilizzare
OPTION_REG.PS0 = 1; //
OPTION_REG.PS1 = 1; //imposto il prescaler a 16
OPTION_REG.PS2 = 0; //
INTCON.T0IF = 0; //azzero interrupt timer
OPTION_REG.INTEDG = 1; //imposto controllo sul fronte di salita
INTCON.F1 = 0; //reset flag
INTCON = 0b00010000; //impostato unico interrupt rb0
INTCON.GIE = 1;
while(1){
if(tempo > 80)
{
portb=160;
delay_ms(500);
portb=32;
delay_ms(500);
portb=128;
delay_ms(500);
portb=32;
delay_ms(500);
}else{
portb=0;

if (portb.F0=0)
{
delay_ms(100);
TMR0 = 0;
}
}
if(TMR0 = 0)
{
portb.f1=1;
delay_ms(1000);
portb.f1=0;
delay_ms(1000);
}
}
}
__________________
NUOVO DRONE TAGLIATO AL LASER CO2 https://www.youtube.com/watch?v=cBgCVNyPH5c&t=7s
GRUPPO LASER https://www.facebook.com/groups/1880460478909243/
elicottero78 non è collegato   Rispondi citando