Ciao ciao,
piccolo problema, mentre giocherellavo e facevo qualche prova, mi sono accorto di un problemino.
praticamente il PIC non vede i pulsanti BT3 e BT4, sulla porta B, pin 6 e 7.
allora ho fatto un piccolo programmino per vedere dove sbagliavo, una cosa semplice semplice, configurato tutte le porte come ingressi e poi la porta D come uscite, quindi sono andato leggere la porta B con IO_read_port(IO_PORTB);
ma quando ho visualizzato su display il risultato, senza premere nessun pulsante, mi aspettavo di trovare 0xFF, in realtà ho trovato 0x3F, il che significa che gli ingressi b6 eb7 sono a zero equindi anche premendoli non cambiano la stato d'ingresso.
Pensavo che fosse una configurazione hardware, poi ho pensato che qualche impostazione della libreria, ma nonho trovato nulla. Quindi sono a chiedere: dove sto sbagliando?
il codice è il seguente
Code:
#include <xc.h>
#include <LTlib.h>
#include <LTlib_delay.h>
#include <LTlib_delay.c>
#include <module_IO.h>
#include <module_IO.c>
#include <LCD_44780.h>
#include <LCD_44780.c>
int main (void){
unsigned char data;
IO_set_all_ports_as_inputs();
IO_enable_pull_up_resistors (IO_PORTB, IO_BIT4 + IO_BIT5 + IO_BIT6 + IO_BIT7);
IO_set_port_direction(IO_PORTD, IO_ALL_PORT_OUTPUT);
LCD_initialize(20);
while(1){
data = IO_read_port(IO_PORTB);
LCD_home();
LCD_write_message("Var data: ");
LCD_write_integer (data, 2, LCD_ZERO_CLEANING_ON);
}
}