Interrupts

8 Anni 1 Mese fa #6 da Guido72
Risposta da Guido72 al topic Interrupts
Ho postato il prog ma potrebbe non essere l'originale visto che ho fatto parecchie modifiche
nel tentativo di risolvere.

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

  • Guido72
  • Senior Member
  • Senior Member
Di più
8 Anni 1 Mese fa #7 da firstcolle
Risposta da firstcolle al topic Interrupts
Quando fai questo
If (PORTBbits.RB4 == 1 & PORTCbits.RC4 == 0)
Devi fare
If ((PORTBbits.RB4 == 1) && (PORTCbits.RC4 == 0))

Come hai scritto tu fai un and logico mentre nel secondo caso verifico che entrambe le condizioni siano rispettate

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

  • firstcolle
  • Avatar di firstcolle
  • Platinum Member
  • Platinum Member
Di più
8 Anni 1 Mese fa #8 da Guido72
Risposta da Guido72 al topic Interrupts
Ciao Firstcolle,

hai ragione tuttavia , in alcuni programmi l'ho usato senza problemi.....forse un caso .

La doppia parentesi è anche necessaria ?

Saluti
Guido

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

  • Guido72
  • Senior Member
  • Senior Member
Di più
8 Anni 1 Mese fa #9 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Interrupts
Per la doppia parentesi e' bene usarla per chiarezza di priorita' degli operatori ma serve formalmente solo quella piu' esterna.

Usare & e && e' effettivamente differente. l'operatore & costringera' il controllo IF a seguire sempre un percorso logico in base al risultato dell'operazione &.

Se il software funziona e' solo un caso e normalmente o esegui sempre l'IF anche se non necessario o esegui sempre un ramo (solo un caso). Per questo durante i software test e' bene testare entrambe le condizioni logiche dell'operatore IF.
In questi contesti entrare in modalita' Debug e' molto utile.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
8 Anni 1 Mese fa #10 da Guido72
Risposta da Guido72 al topic Interrupts
Salve Mauro,

ok grazie :)


Per quel che riguarda il codice che ho allegato in precedenza , hai notato errori (che devono esserci)?

Oltre al display che non legge nulla, ho i seguenti malfunzionamenti:

1) Il display "pulsa" , come se venisse aggiornato circa ogni 1/2 secondo. Ma non sempre.

2) Al verificarsi di un evento sui pin abilitati all'interrupt , il display riporta 2 con una serie di linee orizzontali , come se fosse 2EE (senza le linee verticali delle E). Anche qui , non sempre.


Le impostazioni dei registri del 18F4550 sono della libreria Laurtec , così come le librerie del LCD + delay.

Saluti
Guido

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

  • Guido72
  • 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