Ancora problemi con codice TIMER

13 Anni 8 Mesi fa #11 da Ricky85
Risposta da Ricky85 al topic Re: Ancora problemi con codice TIMER

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • Ricky85
  • Avatar di Ricky85
  • Senior Member
  • Senior Member
Di più
13 Anni 8 Mesi fa #12 da Guido
Risposta da Guido al topic Re: Ancora problemi con codice TIMER
Ciao, ho provato il tuo codice ma non va, il led mi lampeggia alla stessa frequenza sia che schiaccio uno oppure l'altro pulsante, la cosa strana è che la frequenza che esce è diversa da quelle che ho settato. Se imposto i settagi dei T0CONbits. nel main funziona ma cosi posso usare un solo pulsante.
Qualche idea?
Grazie

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

  • Guido
  • Platinum Member
  • Platinum Member
Di più
13 Anni 8 Mesi fa #13 da Ricky85
Risposta da Ricky85 al topic Re: Ancora problemi con codice TIMER

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • Ricky85
  • Avatar di Ricky85
  • Senior Member
  • Senior Member
Di più
13 Anni 7 Mesi fa #14 da Guido
Risposta da Guido al topic Re: Ancora problemi con codice TIMER
Bravo, funziona ha scritto nel main la frequenza maggiore, mi devi solo spiegare come calcolare le frequenze minori tipo: 200Hz, 620Hz,100Hz, ecc.
Io uso il programma LAUNCH PIC per calcolare le frequenze e i risultati li scrivevo nel IF di PRTB tipo:
T0CONbits.TMR0ON = 1;// Timer0 On/Off Control bit:1=Enables Timer0 / 0=Stops Timer0
T0CONbits.T08BIT = 0;// Timer0 8-bit/16-bit Control bit: 1=8-bit timer/counter / 0=16-bit timer/counter
T0CONbits.T0CS = 0;// TMR0 Clock Source Select bit: 0=Internal Clock (CLKO) / 1=Transition on T0CKI pin
T0CONbits.T0SE = 0;// TMR0 Source Edge Select bit: 0=low/high / 1=high/low
T0CONbits.PSA = 0;// Prescaler Assignment bit: 0=Prescaler is assigned; 1=NOT assigned/bypassed
T0CONbits.T0PS2 = 0;// bits 2-0 PS2:PS0: Prescaler Select bits
T0CONbits.T0PS1 = 0;
T0CONbits.T0PS0 = 0;
TMR0H = 0xF9; // preset for Timer0 MSB register
TMR0L = 0x7D; // preset for Timer0 LSB register

al posto di:

T0CONbits.T0PS2 = 0;// bits 2-0 PS2:PS0: Prescaler Select bits
T0CONbits.T0PS1 = 0;
T0CONbits.T0PS0 = 0;

Grazie per il tempo che mi dedichi.

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

  • Guido
  • Platinum Member
  • Platinum Member
Di più
13 Anni 7 Mesi fa #15 da Spazzoli
Risposta da Spazzoli al topic Re: Ancora problemi con codice TIMER
Ok cambiare il prescaler...ma così non puoi ottenere qualsiasi frequenza, per avere ancora più libertà insieme al prescaler si deve andare a precaricare dei valori nei registri interni del timer, così che l'overflow giunge in un tempo diverso, e da noi determinato, rispetto a quello naturale...è spiegato bene nel testo di mauro, c18 step by step.

ciaooo

anto.spax
youtube robot gallery:
www.youtube.com/user/antospax?feature=mhum

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

  • Spazzoli
  • Avatar di Spazzoli
  • Senior Member
  • Senior Member
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