Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Interrupt da Timer0

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[11] Re: Interrupt da Timer0

Messaggioda Foto Utentedany192 » 21 nov 2011, 23:39

Ragazzi mi è venuto un dubbio: posso far partire\stoppare il timer alla pressione di un tasto andando a modificare il bit TMR0ON del registro T0CON?? Metto un po' di codice per spiegarmi meglio:

Codice: Seleziona tutto
INTCON = 0b11100000;                    //Abilito interrupt GIE, PEIE, TMR0
T0CON = 0b01000111;                     //TMR0 OFF - 8bit - Prescaler 1:256

void main(void){
        ....
        if(PORTA.RA0) T0CON.TMR0ON = 1; //avvia il timer
        if(PORTA.RA1) T0CON.TMR0ON = 0; //stop
        ....
}
Avatar utente
Foto Utentedany192
20 6
Frequentatore
Frequentatore
 
Messaggi: 123
Iscritto il: 1 ago 2011, 13:32
Località: everywhere

0
voti

[12] Re: Interrupt da Timer0

Messaggioda Foto Utentesimo85 » 21 nov 2011, 23:41

Io non vedo nessuna restrizione particolare, ma anche non avendolo mai provato per mancanza di necessità penso che sia possibile.

Potresti anche usare un solo push switch.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[13] Re: Interrupt da Timer0

Messaggioda Foto Utentedany192 » 21 nov 2011, 23:48

Dovrei far partire il timer solo al verificarsi di una determinata condizione...Io credo pure che sia possibile solo che non avendolo mai provato, e visto che il firmware non mi sta funzionando a dovere, ho chiesto qui per iniziare ad escludere qualche errore nel debug che sto facendo :D
Avatar utente
Foto Utentedany192
20 6
Frequentatore
Frequentatore
 
Messaggi: 123
Iscritto il: 1 ago 2011, 13:32
Località: everywhere

0
voti

[14] Re: Interrupt da Timer0

Messaggioda Foto Utentesimo85 » 21 nov 2011, 23:53

Se il pulsante viene premuto una volta, fai partire il timer, se viene ripremuto lo spegni.
Occhio ai rimbalzi..
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[15] Re: Interrupt da Timer0

Messaggioda Foto UtenteAjKDAP » 21 nov 2011, 23:53

E' una semplice operazione di scrittura di un registro interno. La puoi fare tranquillamente :ok:
Avatar utente
Foto UtenteAjKDAP
1.255 2 6 9
Expert EY
Expert EY
 
Messaggi: 796
Iscritto il: 17 mag 2006, 0:13
Località: nella coda dei pronti

0
voti

[16] Re: Interrupt da Timer0

Messaggioda Foto Utentedany192 » 22 nov 2011, 0:16

Ok, ho fatto un programmino veloce su un altro PIC con un led lampeggiante e sembra funzionare.

Nel progetto dell'USB che sto facendo invece, devo ancora implementarlo l'antirimbalzo perché devo gestire 25 switch contemporanemante quindi devo trovare una soluzione per perdere meno tempo possibile nel controllo :mrgreen:
Avatar utente
Foto Utentedany192
20 6
Frequentatore
Frequentatore
 
Messaggi: 123
Iscritto il: 1 ago 2011, 13:32
Località: everywhere

Precedente

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti