walterword Inserito: 3 aprile 2006 Segnala Share Inserito: 3 aprile 2006 virrei utilizzare i primi 2 ingressi della porta A come ingressi analogici mentre i rimanenti come uscite per pilotare un lcd a 4 bitsi puo fare ?adesso utilizzo da ra0 a ra3 per pilotare l'lcd , quindi nel main disabilito le analogiche come posso abilitare solo i primi 2 ingressi come analogiche ?uso ccs compiler ciao grazie Link al commento Condividi su altri siti More sharing options...
Sergio60 Inserita: 3 aprile 2006 Segnala Share Inserita: 3 aprile 2006 che pic utilizzi?ciao sergio Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 aprile 2006 Segnala Share Inserita: 3 aprile 2006 (modificato) Si Walter si può fare, guarda nell'help in linea del CCS, built in function ==> read_AD(), (cito a memoria e ci può essere qualche imprecisione). Nelle funzioni collegate e nella spiegazione di quella funzione è indicato come fare per abilitare solo alcune linee A/D Modificato: 3 aprile 2006 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
dlgcom Inserita: 3 aprile 2006 Segnala Share Inserita: 3 aprile 2006 Ciao Walter,Purtroppo non puoi configurare solo an0 e an1 come entrate analogiche c'e' una tabella nel manuale a pag 112 che ti da tutte le combinazioni disponibli qui un breve riassuntoA = Analog input D = Digital I/O PCFG3:PCFG0 an7- re2 > an0-ra0 0000 A A A A A A A A 0001 A A A A VREF+ A A A 0010 D D D A A A A A 0011 D D D A VREF+ A A A 0100 D D D D A D A A ------ tuo caso 0101 D D D D D D D D 1000 A A A A VREF+ VREF- A A 1001 D D A A A A A A 1010 D D A A VREF+ A A A 1011 D D A A VREF+ VREF- A A 1100 D D D A VREF+ VREF- A A 1101 D D D D VREF+ VREF- A A 1110 D D D D D D D A 1111 D D D D VREF+ VREF- D A Come vedi , in base alla config dei bit PCFG3:PCFG0 del registro ADCON1 puoi decidere quali entrate devono essere analogiche e quali digitali. Nel tuo caso la config che piu' si avvicina e la 0100 due analogiche una dig una analogica tutte le altre dig. Per il ccs devi usare setup_adc_ports( RA0_RA1_RA3_ANALOG ); Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 3 aprile 2006 Autore Segnala Share Inserita: 3 aprile 2006 grazie per le gentili informazioni praticamente come dice dlgcom devo utilizzare almeno 3 analogiche per la porta A .Nel mio caso setup_adc_ports( RA0_RA1_RA3_ANALOG ); come dice giustamente lucabene adesso provo solo che pero porca miseria sto gia usndo ciao e graziewalter Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 3 aprile 2006 Autore Segnala Share Inserita: 3 aprile 2006 (modificato) ho fatto le modifiche ma non funziona piu bene vi posto il codice :#include "Prova.h"#include <string.h>#include "MyLCD4.h"unsigned long QuotaEncoder; // Quota Globale dell'encoderunsigned char mem;// Define dei segnali dell'encoder (Ingressi)#bit ENC_UP = 0x6.1 // PIN_B1 (1 = Up / 0 = Down)#bit ENC_Z = 0x6.2 // PIN_B2 (1 = Z)#bit ENC_ZERO = 0x6.3 // PIN_B3 (1 = Micro di Zero)#bit INC_PAGE = 0x6.4 // PIN_B4 (1= Incrementa pagina LCD)#bit DEC_PAGE = 0x6.5 // PIN_B5 (1= Decrementa pagina LCD)#bit MEM1 = mem.0 //Memoria fronte di salita #bit MEM2 = mem.1 //Memoria fronte di salita unsigned char PAGE;// Definizioni per l'LCD//#bit DATA_PIN_4 = 0x5.0 // PIN_A0//#bit DATA_PIN_5 = 0x5.1 // PIN_A1//#bit DATA_PIN_6 = 0x5.2 // PIN_A1//#bit DATA_PIN_7 = 0x5.3 // PIN_A3#bit DATA_PIN_4 = 0x5.2 // PIN_A2#bit DATA_PIN_5 = 0x5.4 // PIN_A4#bit DATA_PIN_6 = 0x5.5 // PIN_A5#bit DATA_PIN_7 = 0x7.0 // PIN_C0#bit E_PIN = 0x7.1 // PIN_C1 Port for E#bit RS_PIN = 0x7.2 // PIN_C2 Port for RS#bit TRIS_DATA_PIN_4 = 0x85.2 // TRIS A0#bit TRIS_DATA_PIN_5 = 0x85.4 // TRIS A1#bit TRIS_DATA_PIN_6 = 0x85.5 // TRIS A2#bit TRIS_DATA_PIN_7 = 0x87.0 // TRIS A3#bit TRIS_E = 0x87.1 // TRIS C0 TRIS for E#bit TRIS_RS = 0x87.2 // TRIS C1 TRIS for RS .......void main(void){ char Buff[17]; set_tris_a(0b00001011); // In: PA0 analog RA0 // In: PA1 analog RA1 // Out:PA2 DATA_PIN_4 LCD // In: PA3 analog RA1 // Out:PA4 DATA_PIN_5 LCD // Out: PA5 DATA_PIN_6 LCD set_tris_c(0b10000000); // Out : PC0 DATA_PIN_7 LCD // Out:PC1 LCD E_PIN // Out:PC2 LCD RS_PIN // PC3 SCL (Pin 15 Mainboard) // PC4 SDA (Pin 27 Mainboard) // PC5 (Pin 28 Mainboard) // Out : PC6 Tx Seriale (Pin 29 Mainboard) // In : PC7 Rx Seriale (Pin 30 Mainboard) setup_adc(RA0_RA1_RA3_ANALOG); while(1) { ....................... }//Non riesco a capire cosa possa sfuggire , cioe l'LCD funziona ma butta fuori qualche carattere strano e non visualizzo piu la quota dell'encoder Modificato: 3 aprile 2006 da walterword Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 aprile 2006 Segnala Share Inserita: 3 aprile 2006 Cos'è che non ti gira Walter? Forse hai dimenticato di dirlo Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 3 aprile 2006 Segnala Share Inserita: 3 aprile 2006 Con che compilatore stai lavorando e con che PIC ; inoltre quale e' il problema ?Perche' se usi il compilatore della CCS con le stringhe spesso fa dei casini e se usi le analogiche a seconda del modello devi specificare i bit della risoluzione con apposito define.Ciao Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 3 aprile 2006 Autore Segnala Share Inserita: 3 aprile 2006 ho spostato le porte dell' lcd funziona ma non bene , cioe escono alcuni caratteri farlocchi e non visualizzo piu la quota encoderlivio non famri dire cose che poi vengono censurate per favore Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 3 aprile 2006 Autore Segnala Share Inserita: 3 aprile 2006 claudio ho modificato il programma lcd + encoder aggiungendo nuove pagine all' lcde tutto funzionava egregiamente siccome pero sto ancora aspettando il passaporto e il visto per l'india , pensavo di colorare un po aggiungengo 2 nuove pagine all'lcd che visualzizassero i valori analogici in Ra0 e RA1 visto che pero il buon luca guerra mi ha elencato il settaggio della porta A ho scelto quello che piu si addice , ma per far cio ho dovuto spostare i fili e la configurazione dell' lcd per quanto riguarda i 4 bit di dati , l'enable e RS solo che pero mi escono dei caratteri strani ho postato il settaggio della porta A , con i rem era prima , senza e' adesso ma non capisoc se c'e' qualcosa che v ain conflitto ....caro fratellino ifach ciao walter Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 3 aprile 2006 Autore Segnala Share Inserita: 3 aprile 2006 in poche parole lcd a 4 bit di dati di cui 3 bit in porta A e 1 bit in porta C RS e enable in porta C Porta A con 2 analogiche (Ra0 e Ra1 )non vorrei che ci sia qualche conflitto (di interessi) Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 3 aprile 2006 Autore Segnala Share Inserita: 3 aprile 2006 in sostanza invece di visualizzare la 'Z' visualizzo la 'X' e i numeri non esistono Link al commento Condividi su altri siti More sharing options...
dlgcom Inserita: 4 aprile 2006 Segnala Share Inserita: 4 aprile 2006 La butto li ...Non e' che nella tua routine mylcd4 usi uno swap per trasmettere il primo nibble e poi il secondo ?cambiando i fili , forse ora non c'e' piu' corrispondenza tra i bit. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 4 aprile 2006 Autore Segnala Share Inserita: 4 aprile 2006 ciao luca in sostanza non ho fatto altro che shiftare i fili e di conseguenza i settaggi dei pins delle porte cioe l'lcd funziona , per esempio la scritta 'encoder' la visualizza correttamentementre visualizza la 'X' al posto della ' Z' i numeri proprio non li visualizza assolutamentenon capisco , ma credo che possa essere un conflitto nel compialatore ho anche aggiunto la direttiva #device pic16f876a adc=10 , con relativi settaggi ma non cambia nienteboh ... oggi pomeriggio faro altre prove ciao e graziewalter Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora