BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   PIC 16F877A lento?! (https://www.baronerosso.it/forum/circuiti-elettronici/143411-pic-16f877a-lento.html)

Mrk89 16 agosto 09 15:56

PIC 16F877A lento?!
 
Ciao, ho un problema.
Ho programmato il pic in oggetto per pilotare un display lcd alfanumerico e va lento....:o:
Non mi era mai successo prima!!Praticamente mi scrive un carattere al secondo.
Utilizzo un quarzo da 16MHz ed i condensatori di risonanza sono corretti.
Quale potrebbe essere il problema?Con altri pic non ne avevo mai avuti, nemmeno con ram e rom sfruttate al massimo.
Per favore aiutatemi.
Grazie e Ciao.

illez 16 agosto 09 16:00

Mah'...
bisognerebbe vedere il programma, come pilota il display.
Non credo sia un problema del PIC.

Mrk89 16 agosto 09 19:01

Beh, il programma deve scrivere su display valori letti dagli ingressi ADC.
Poi ha anche un menù sfogliabile con dei tasti...
Sono state create delle funzioni per sfoltire il main, potrebbe essere questo che rallenta?

illez 16 agosto 09 19:04

L'unica cosa che mi sembra strana è il Pic lento.
Se non puoi fare debug, prova a fare qualche test empirico, tipo accendere e spegnere un led ogni 300ms.
Controlla quanto durano eventuali routine di interrupt o se arrivano troppo di frequente...

Mrk89 16 agosto 09 19:09

Citazione:

Originalmente inviato da illez (Messaggio 1680827)
L'unica cosa che mi sembra strana è il Pic lento.
Se non puoi fare debug, prova a fare qualche test empirico, tipo accendere e spegnere un led ogni 300ms.
Controlla quanto durano eventuali routine di interrupt o se arrivano troppo di frequente...

Ecco appunto.....Nel programma all'inizio c'è una routine per far accendere dei leds in sequenza...I led dovrebbero accendersi appena il pic viene alimentato, invece passano 20 e più secondi prima che si accenda il primo, poi gli altri si accendono alla velocità normale, poi rallenta tutto di nuovo.:(

illez 16 agosto 09 19:13

Interrupt?

Flag di compilazione? (hai impostato i valori corretti per il tuo clock? Watchdog?)

Mrk89 16 agosto 09 19:20

Citazione:

Originalmente inviato da illez (Messaggio 1680838)
Interrupt?

Flag di compilazione? (hai impostato i valori corretti per il tuo clock? Watchdog?)

Ricontrollati più volte....o mi è sfuggito qualcosa...oppure non so...

illez 16 agosto 09 19:28

vediamo:
1. il pic è guasto. Carica sopra il classico programmino che fa lampeggiare 1 led e vedi. Se non funziona a dovere, è questa l'ipotesi corretta.
2. hai sbagliato qualcosa. Supponiamo i flag siano corretti. Andrei a vedere gli interrupt ogni quanto arrivano ma soprattutto quanto durano. Un ciclo sbagliato all'interno di un interrupt e sei fregato.
Se ci pensi, se il pic passa il suo tempo gestendo l'int, va lento...

Però solo tu conosci il programma e puoi dare la risposta corretta :wink:

ElNonino 16 agosto 09 20:56

In che linguaggio/compilatore è scritto il programma ?

:yeah:

Mrk89 17 agosto 09 00:10

Citazione:

Originalmente inviato da ElNonino (Messaggio 1680931)
In che linguaggio/compilatore è scritto il programma ?

:yeah:

E' scritto in MikroC.


Tutti gli orari sono GMT +2. Adesso sono le 17:19.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002