- Messaggi: 1010
- Ringraziamenti ricevuti 107
fotoresistenza freedom II
- Walter 10
- Autore della discussione
- Visitatori
-
11 Anni 10 Mesi fa - 11 Anni 9 Mesi fa #1
da Walter 10
fotoresistenza freedom II è stato creato da Walter 10
Ciao a tutti,
vorrei visualizzare il valore dell'uscita dalla fotoresistenza presente sulla freedom II sull'LCD.
La conversione A/D vorrei gestirla con gli interrupt sul TMR0 e l'nterrupt di fine conversione ADIF.
Il compilatore mi da il seguente errore:
Error [314] C:\Users\ORONERO\Desktop\Programmare PICmicro\Programmi vari\programmazione_picmicro_08\termostato con LM35\delay.c; 12.1 ";" expected
Error [192] C:\Users\ORONERO\Desktop\Programmare PICmicro\Programmi vari\programmazione_picmicro_08\termostato con LM35\delay.c; 22.1 undefined identifier "i"
Error [192] C:\Users\ORONERO\Desktop\Programmare PICmicro\Programmi vari\programmazione_picmicro_08\termostato con LM35\delay.c; 26.11 undefined identifier "cnt"
Warning [361] C:\Users\ORONERO\Desktop\Programmare PICmicro\Programmi vari\programmazione_picmicro_08\termostato con LM35\lcd.c; 163.1 function declared implicit int
non credo dipenda dai fie dellalibreria delay o lcd che funzionano correttamente. Probabilmente ho fatto qualche errore nella compilazione dell'interrupt, vi posto il codice main e setting:
E questo è il settings:
Grazie Ragazzi...
vorrei visualizzare il valore dell'uscita dalla fotoresistenza presente sulla freedom II sull'LCD.
La conversione A/D vorrei gestirla con gli interrupt sul TMR0 e l'nterrupt di fine conversione ADIF.
Il compilatore mi da il seguente errore:
Error [314] C:\Users\ORONERO\Desktop\Programmare PICmicro\Programmi vari\programmazione_picmicro_08\termostato con LM35\delay.c; 12.1 ";" expected
Error [192] C:\Users\ORONERO\Desktop\Programmare PICmicro\Programmi vari\programmazione_picmicro_08\termostato con LM35\delay.c; 22.1 undefined identifier "i"
Error [192] C:\Users\ORONERO\Desktop\Programmare PICmicro\Programmi vari\programmazione_picmicro_08\termostato con LM35\delay.c; 26.11 undefined identifier "cnt"
Warning [361] C:\Users\ORONERO\Desktop\Programmare PICmicro\Programmi vari\programmazione_picmicro_08\termostato con LM35\lcd.c; 163.1 function declared implicit int
non credo dipenda dai fie dellalibreria delay o lcd che funzionano correttamente. Probabilmente ho fatto qualche errore nella compilazione dell'interrupt, vi posto il codice main e setting:
Code:
#define XTAL_FREQ 20MHZ
#include <pic.h>
__CONFIG (HS & WDTDIS & PWRTEN & BORDIS & LVPDIS & DUNPROT & WRTEN & DEBUGDIS & UNPROTECT);
#include "settings.h"
#include "delay.c"
#include "lcd.c"
void main(void)
{
settings();
LCD_INIT();
DelayMs(100); // piccolo ritardo iniziale
LCD_CLEAR(); // ripulisco il display
// preparo le scritte sul display
LCD_GOTO(1,1);
LCD_PUTS("Fotoresistenza");
calcola=0;
BL=1; // backlight LCD ON
while(1)
{
if (calcola)
{
valore=ADRESL + (ADRESH<<8);
media+=valore; // sommo il valore
contavalori++;
if (contavalori==(MEANVALUES-1))
{
fotoresistenza=(media/MEANVALUES);
media=0; // azzero la media
contavalori=0; // azzero il contatore dei valori sommati
LCD_GOTO(2,1);
LCD_PUTS(" ");
LCD_GOTO(2,1);
LCD_PUTUN((fotoresistenza*5)/10);
LCD_PUTS(".");
LCD_PUTUN((fotoresistenza*5)%10); // parte decimale. Varrà sempre 0 o 5 per quanto detto sopra
}
calcola=0; // resetto il flag
} // fine routine di calcolo
} //chiudi ciclo while
} //fine main
void interrupt ISR(void)
{
if (T0IF)
{
TMR0=102;
count_ph--;
if (count_ph==0)
{
ADGO=1;
count_ph=200;
}
T0IF=0;
}
if (ADIF)
{
calcola=1;
ADIF=0;
}
}
E questo è il settings:
Code:
#define BL RC1 // backlight LCD
#define MEANVALUES 20
bit calcola;
unsigned char count_ph=200;
unsigned char contavalori=0;
unsigned int valore=0;
unsigned int fotoresistenza=0;
unsigned int media=0;
extern void main(void);
extern void interrupt ISR(void);
void settings(void)
{
TRISA=0b00101111;
TRISE=0b00000111;
TRISB=0b11100000;
TRISC=0b00000000;
TRISD=0b00000000;
OPTION=0b01000100;
INTCON=0b10100000;
ADIE=1;
TMR0=102;
ADCON0=0b10000001;
ADCON1=0b10001110;
Grazie Ragazzi...
Ultima Modifica 11 Anni 9 Mesi fa da StefA.
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Pinna
-
- Moderatore
-
Less
Di più
11 Anni 10 Mesi fa #2
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic fotoresistenza freedom II
Ciao Walter, credo di poterti aiutare; conosco molto bene quelle routine e ringrazio ancora Giovanni Bernardo perchè anch'io ho utilizzato i suoi esempi per creare il firmware per il mio alimentatore stabilizzato, dove sul display lcd leggo sia la tensione che la corrente utilizzando appunto gli interrupt. Presumo tu uso un 16F876 o 16F877A per cui ti allego molto volentieri la cartella del "mio" firmware, che potrai modificare a piacimento per i tuoi scopi
Marcello
Marcello
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accesso o Crea un account a partecipare alla conversazione.
- StefA
-
- Moderatore
-
Less
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
11 Anni 10 Mesi fa #3
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Risposta da StefA al topic fotoresistenza freedom II
gli errori sembrerebbero indicare un ";" mancante...una non dichiarazione di "i" e una non dichiarazione di "cnt".
Prova a clickarci sopra e vedi dove ti da l'errore.
Il file delay.h viene incluso da qualche altra parte?
Che librerie stai usando e che compilatore?
Ste
Prova a clickarci sopra e vedi dove ti da l'errore.
Il file delay.h viene incluso da qualche altra parte?
Che librerie stai usando e che compilatore?
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Walter 10
- Autore della discussione
- Visitatori
-
11 Anni 9 Mesi fa #4
da Walter 10
Risposta da Walter 10 al topic fotoresistenza freedom II
Grazie ragazzi,
ci proverò. Ma il codice secondo voi è corretto?? c'è qualche errore??
ci proverò. Ma il codice secondo voi è corretto?? c'è qualche errore??
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Walter 10
- Autore della discussione
- Visitatori
-
11 Anni 9 Mesi fa #5
da Walter 10
Risposta da Walter 10 al topic fotoresistenza freedom II
Scusate ragazzi una cosa che non c'entra nulla.
Sapete dove trovare la libreria pwm.h per il controllo di questo modulo?
Sapete dove trovare la libreria pwm.h per il controllo di questo modulo?
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- progetto can
- da marcelloraja
-
- MODULO GSM SIM900A
- da Mauro Laurenti
-
- Freedom III e compilazioni fallite
- da Mauro Laurenti
-
- Gestione degli errori su comunicazione seriale
- da Mauro Laurenti
-
- Timer0 e interrupt
- da Mauro Laurenti