Freedom Light e il modulino uPanel
- Lello Guidi
-
Autore della discussione
- Platino Utente
-
Less
Di più
6 Anni 11 Mesi fa - 6 Anni 11 Mesi fa #11
da Lello Guidi
Risposta da Lello Guidi al topic Freedom Light e il modulino uPanel
Ho provato con le modifiche consigliate ma il risultato non mi cambia.
Allego il listato completo:
Sia che resetto il RCIF dentro al "if" o fuori al massimo evidenzio sul LCD solo due caratteri.
Saluti
Lello
Allego il listato completo:
Code:
#include <xc.h>
#include <LTlib.h>
#include <LTlib_delay.h>
#include <LTlib_delay.c>
#include <LCD_44780.h>
#include <LCD_44780.c>
#include <module_IO.h>
#include <module_IO.c>
#include "module_UART.h"
#include "module_UART.c"
#include <stdio.h>
#include <stdlib.h>
#define HEADER_1 0x23 // carattere #
#define HEADER_2 0x24 // carattere $
#define LEDverde LATDbits.LATD0
#define LEDrosso LATDbits.LATD1
unsigned char stringa[30];
unsigned int contatore = 0;
void main(void){
IO_set_all_ports_as_inputs();
IO_set_port_direction(IO_PORTD, IO_ALL_PORT_OUTPUT);
LCD_initialize(20);
LCD_cursor(LCD_TURN_OFF_CURSOR, LCD_BLINKING_OFF);
LCD_home();
LCD_write_message(" uPanel e Led");
LCD_goto_xy(6,2); // (colonna, riga)
LCD_write_message("New 6");
delay_s(3);
LCD_clear();
//*****************************************************
// Configura l'USART a 57600 bit/s
//******************************************************
UART1_open(UART_BAUDRATE_9600);
delay_ms(10);
UART1_write_message("\n");
UART1_write_message("$PING 200;\n");
UART1_write_message("$P:D!338;=T*15:Led new 6;{%100,3!88F,228}*20/L1G:0:LED;*10/W1:0;\n");
RCIE = 1; // Attivo interrupt in RX
RCIP = 1; // Alta Priorità USART
GIE = 1; // Abilito alta priorità globale
PEIE = 1; // Abilito interrupt periferiche
while(1){
//LCD_clear();
LCD_goto_line(1);
LCD_write_string(stringa);
LCD_goto_line(2);
LCD_write_integer(contatore,2,0);
if(stringa[0] == 0x23) { // #
LEDrosso=1;
contatore = 0;
}
LEDverde=1;
delay_s(1);
LEDverde = 0;
delay_s(1);
}// end while
}// end main
/************** Interrupt ***************************/
void interrupt high_isr(void){
if(RCIF){
stringa[contatore] = RCREG;
contatore++;
RCIF = 0;
}
//RCIF = 0;
}
Sia che resetto il RCIF dentro al "if" o fuori al massimo evidenzio sul LCD solo due caratteri.
Saluti
Lello
Ultima Modifica 6 Anni 11 Mesi fa da Lello Guidi. Motivo: errore d'ortografia
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Lello Guidi
-
Autore della discussione
- Platino Utente
-
6 Anni 11 Mesi fa #12
da Lello Guidi
Risposta da Lello Guidi al topic Freedom Light e il modulino uPanel
Ho provato anche a sostituire il ciclo "if" con un "while" ma sono sempre bloccato alla visualizzazione di due caratteri della stringa iniziale.
Saluti
Lello
Saluti
Lello
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Lello Guidi
-
Autore della discussione
- Platino Utente
-
6 Anni 11 Mesi fa #13
da Lello Guidi
Risposta da Lello Guidi al topic Freedom Light e il modulino uPanel
Ho rimesso il Modulino e il progetto in fondo al cassetto...
In attesa dello spunto risolutivo.
Saluti
Lello
In attesa dello spunto risolutivo.
Saluti
Lello
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Cosimix
-
- Elit Utente
-
Less
Di più
- Messaggi: 198
- Ringraziamenti ricevuti 26
6 Anni 11 Mesi fa #14
da Cosimix
Risposta da Cosimix al topic Freedom Light e il modulino uPanel
Salve!
Ho dato una lettura velocissima (superficiale)...
Cosa fai in questa parte del codice?
Saluti,
Cosimo
Ho dato una lettura velocissima (superficiale)...
Cosa fai in questa parte del codice?
Code:
if(stringa[0] == 0x23) { // #
LEDrosso=1;
contatore = 0;
Saluti,
Cosimo
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Lello Guidi
-
Autore della discussione
- Platino Utente
-
6 Anni 11 Mesi fa #15
da Lello Guidi
Risposta da Lello Guidi al topic Freedom Light e il modulino uPanel
Mi serve per capire se si accende il led rosso vuole dire che ho intercettato correttamente la terza stringa che ha come header il simbolo "#" che è quella che mi interessa.
Le prime due stringhe che arrivano hanno come header "$" e le devo scartare, mentre la terza e le successive le devo poi processare.
In pratica devo discriminare se arriva il "$" o il "#".
Saluti
Lello
Le prime due stringhe che arrivano hanno come header "$" e le devo scartare, mentre la terza e le successive le devo poi processare.
In pratica devo discriminare se arriva il "$" o il "#".
Saluti
Lello
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