Interrupt PIC12F1840

10 Anni 7 Mesi fa #26 da amastro
Risposta da amastro al topic Interrupt PIC12F1840
ciao Ste,

beh in realta mi sono reso conto, che usando le librerie mTouch di microchip, e quindi usando quanto già fatto da loto, tutto funziona già in interrupt mode.

ho quindi utilizzato questo stratagemma :sick: :
Una volta captato il segnale, quindi il valore alto su MCLR faccio:

if (JUMPER == ON && FUNC_JUMP == OFF && FUNC_IN == ON && LED0 == OFF )
{
mTouch_DisableScanning();
__delay_ms(250);
while (ex > 0) //ciclo finche non arrivo a 0
{
__delay_ms(2); // delay 2 ms
if (FUNC_IN == ON) {ex = 12;} // se on riporto var a 12
if (FUNC_IN == OFF) {ex--;} // se trigger off decremento variabile e ricontrollo ogni 2 ms.
}
NOP();
ex = 12;
mTouch_EnableScanning();
}

poichè 12 * 2 è maggiore dei 10 ms sono sicuro che il segnale non è piu presente.

che te ne pare?

Ora però vorrei implementare qualcosa che mi controlla che il programma non sia andato in stallo o si sia bloccato. Cosa posso fare?

poi te ne sparo un'altra: xc8 sembra che abbia embedded il __delay_ms()ma non rispetta, almeno con il mio PIC, i tempi reali.

questo il clock:
OSCCON = 0b11110000; // 32 MHz Fosc w/ PLLEN_ON (config bit)
#define _XTAL_FREQ 32000000 // <-- Oscillator frequency of your MCU in Hz

Quando valorizzo la define a 32mhz i tempi di dalay non sono veritieri ma sono ok se lo imposto a 16Mhz. Why?

Ale

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • amastro
  • New Member
  • New Member
Di più
10 Anni 7 Mesi fa #27 da StefA
Risposta da StefA al topic Interrupt PIC12F1840
non mi sono dimenticato.. devo solo trovare il tempo di capire cosa hai fatto.. :P

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login