- Messaggi: 1010
- Ringraziamenti ricevuti 107
Primi passi con il display LCD della Freedom II
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Il lavoro nobilita l'uomo (e lo rende simile alla bestia)...
Si prega Accedi o Crea un account a partecipare alla conversazione.
#include <p18f4550.h>
#include <delay.h>
#define LCD_DEFAULT
#include <LCD_44780.h>
#pragma config FOSC = HS
#pragma config PBADEN = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
void main(void)
{
unsigned int sommatoria = 0;
int lettura = 0;
char i;
LATA = 0x00;
TRISA = 0xFF;
LATB = 0x00;
TRISB = 0xFF;
LATC = 0x00;
TRISC = 0b11111101;
LATD = 0x00;
TRISD = 0x00;
LATE = 0x00;
TRISE = 0xFF;
OpenLCD (20);
BacklightLCD (TURN_ON);
WriteStringLCD(" ROV CONTROLLER ");
Line2LCD ();
WriteStringLCD("by M.D.d.R. 2011");
delay_ms(2000);
ClearLCD();
WriteStringLCD("Inizializzazione");
delay_ms(5000);
ClearLCD();
WriteStringLCD("Temp: ");
ShiftCursorLCD(RIGHT,3);
WriteCharLCD(223);
WriteCharLCD('C');
ShiftCursorLCD(LEFT,5);
ADCON1 = 0b00001101;
ADCON0 = 0b00001000;
ADCON2 = 0b10110100;
ADCON0bits.ADON = 0x01;
while(1) {
sommatoria = 0;
for (i = 0; i < 64; i++)
{
ADCON0bits.GO = 1;
while(ADCON0bits.GO);
lettura = (((int) ADRESH) << | ADRESL;
sommatoria = sommatoria + lettura;
}
sommatoria = sommatoria >> 6;
sommatoria = sommatoria >> 1;
WriteIntLCD(sommatoria, 2);
ShiftCursorLCD(LEFT, 2);
delay_ms(5000);
}
}
Il lavoro nobilita l'uomo (e lo rende simile alla bestia)...
Si prega Accedi o Crea un account a partecipare alla conversazione.
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
- Messaggi: 1010
- Ringraziamenti ricevuti 107
Come ha detto Pinna ti consiglio di far uso degli esempi presenti sul Testo C18 Step by Step.
Se il problema persiste facci sapere. Se memoria non mi inganna avevi avuto qualche problema nel montaggio del sensore e il transistor per cui non e' da escludere che si possa essere danneggiato qualcosa.
Relativamente allo sfarfallio, non vedendo un ClearLCD all'interno del loop, sospetto che derivi dall'alimentatore. Una volta ho avuto un problema simile con un alimentatore DC con ripple troppo elevato. credo di aver messo anche una nota a riguardo sulla documentazione di Freedom II.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.