__delay_ms(1000) sembra non funzionare

LaurTec - __delay_ms(1000) sembra non funzionare - Pagina 2 - LaurTec
4 Anni 5 Mesi fa #6 da Lello Guidi
Risposta da Lello Guidi al topic __delay_ms(1000) sembra non funzionare

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.

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
4 Anni 5 Mesi fa #7 da Mauro Laurenti
Risposta da Mauro Laurenti al topic __delay_ms(1000) sembra non funzionare
Salve Lello,

le variabili

signed int luce = 512;
signed int lettura = 0;

le puoi dichiarare unsigned.

unsigned int luce = 512;
unsigned int lettura = 0;

ma questo non è il problema.

Il pin usato per l'ADC lo devi impostare come ingresso e non come uscita.

La conversione:

lettura = ADRESL+(ADRESH<<8);

ha un problema di overflow. Lo shift lo devi fare dopo aver convertito il valore del registro a 16 bit e non subito.
ADRESH<<8 ti da altrimenti sempre 0 visto che è un registro a 8 bit.

lettura = ADRESL+(ADRESH<<8);

lo devi cambiare in:

lettura = ADRESL + ((unsigned int) ADRESH ) <<8;

o ancor meglio fai il casting esplicito di entrambi

lettura = (unsigned int) ADRESL + ((unsigned int) ADRESH ) <<8;

Per le altre configurazioni, per sapere se sono corrette dovresti "postare" lo schema elettrico,

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
4 Anni 5 Mesi fa #8 da Lello Guidi
Risposta da Lello Guidi al topic __delay_ms(1000) sembra non funzionare

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.

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
4 Anni 5 Mesi fa #9 da Lello Guidi
Risposta da Lello Guidi al topic __delay_ms(1000) sembra non funzionare

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.

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
4 Anni 5 Mesi fa #10 da Mauro Laurenti
Risposta da Mauro Laurenti al topic __delay_ms(1000) sembra non funzionare
Salve Lello,

sul programma dove hai messo la foto:

TRISIO = 0b00001000; // GP4/AN3 IN, gli altri OUT

non è corretto. GP4 è il quinto bit visto che hai anche GP0.
Quindi devi scrivere come sotto o non leggi l'ADC

TRISIO = 0b00010000; // GP4/AN3 IN, gli altri OUT

Ricontrolla gli altri registri.
Hanno problemi simili.

Gli esempi finali fai uso di GP0 direttamente e non GPIObits.GP0

Non ho controllato gli header file ma non sono certo se GP0 sia definito come GPIObits.GP0.

Saluti,

Mauro
Ringraziano per il messaggio: Lello Guidi

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • 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