tiziano_grelettricita Inserito: 21 agosto 2007 Segnala Share Inserito: 21 agosto 2007 Ciao a tutti. Ho sviluppato una piccola applicazione con un PIC16F877A usando l'ICD2, essendo la prima volta ho tribulato ma ora funziona tutto, analogiche, LCD 2x16....Ora mi sono accorto che la mia scheda prototipo senza il collegamento all'ICD2 non funziona....o almeno il display non funziona, credo sia un problema di temporizzazione della comunicazione tra il PIC e il controller del display......Grazie a tutti e complimenti per il forum ho trovato molte informazioni utili. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 21 agosto 2007 Segnala Share Inserita: 21 agosto 2007 la programmazione di quei tipo di micro avviene sulle porte RB6/7 .Se le usi anche per l'applicazione forse va in conflitto qualcosa.Tutt'al piu quando inserisci il connettore dell'ICD2 l'lcd non funziona , come avviene nelle schede motherboard che abbiamo progettato io e altri del sito .Non avrebbe senso che il circuito funzioni solo con il connettore inserito, vorrebbe dire che qualsiasi apparecchiatura che monta tali chip dovrebbe avere in dotazione l'ICD2 , assurdo , guarda bene i manuali ciao walter Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 21 agosto 2007 Segnala Share Inserita: 21 agosto 2007 Io controllerei con il tester o meglio con l'oscilloscopio la tensione su tutte le linee che dal micro vanno all'LCD con e senza ICD2 se non funziona deve cambiare qualcosa Link al commento Condividi su altri siti More sharing options...
tiziano_grelettricita Inserita: 21 agosto 2007 Autore Segnala Share Inserita: 21 agosto 2007 Aggiornamento: le linee usate dall'ICD2 sono libere. Ho tolto alcune parti di codice per capire dove si incastra, ora va meglio ma ogni tanto va in crisi e sul display compare di tutto.....non capisco perchè vada in crisi la comunicazione con il display togliendo alcune parti di codice....cosa c'entra ? Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 21 agosto 2007 Segnala Share Inserita: 21 agosto 2007 tiziano com'è il driver del displayControlli il bit busy prima di fare un'operazione di wr? Link al commento Condividi su altri siti More sharing options...
tiziano_grelettricita Inserita: 21 agosto 2007 Autore Segnala Share Inserita: 21 agosto 2007 Non lo controllo, ho inserito dei ritardi abbastanza grandi (o almeno mi sembravano tali.....sigh!), in effetti quando è collegato l'ICD2 funziona tutto..... Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 21 agosto 2007 Segnala Share Inserita: 21 agosto 2007 purtroppo non so cosa sia l'ICD2 (non lavoro con microchip) Per caso togliendo il codice hai disabilitato qualche interrupt ?Se fai ritardi come loop di istruzioni non hai la certezza della durata e devi tarare tutto sul ritardo massimo previsto per il display. Link al commento Condividi su altri siti More sharing options...
tiziano_grelettricita Inserita: 21 agosto 2007 Autore Segnala Share Inserita: 21 agosto 2007 L'ICD2 è un in circuit debugger che permette il debug con trace del codice (con alcune limitazioni), ma può essere utilizzato anche come semplice programmatore....in effetti qualcosa cambia.....Forse sarebbe meglio leggere il busy dall'LCD prim di scrivere nuovamente..... Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 21 agosto 2007 Segnala Share Inserita: 21 agosto 2007 Leggendo il busy hai la certezza che funzioni in altro modo no.Sei certo che nessuno modifichi lo stato delle porte connesse al display.Un interrupt che modifica un bit sulla porta e che capita a caso magari durante una scrittura alterando lo stato della porta. Il codice non ha errori ma è la sovrapposizione a causare errori. Link al commento Condividi su altri siti More sharing options...
tiziano_grelettricita Inserita: 21 agosto 2007 Autore Segnala Share Inserita: 21 agosto 2007 Non sto usando nessun irq, in effetti il codice legge ciclicamente le analogiche e poi scrive il valore sull'lcd... Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 21 agosto 2007 Segnala Share Inserita: 21 agosto 2007 aggiungi qualche info sulla configurazione hw non io ma qualche pic-esperto può darti cosnigli più mirati Link al commento Condividi su altri siti More sharing options...
tiziano_grelettricita Inserita: 21 agosto 2007 Autore Segnala Share Inserita: 21 agosto 2007 Ok hai ragione!Il PIC è un 16F877A, ho collegato alcuni input digitali (pulsanti con pullup) al port A mentre altri sono analogici (rispettivamente RA0 RA1 e RA3 sono analogici, gli altri digitali). Ho altri input digitali sul port E (sempre pulsanti). Poi ho il display 16x2 con controller HD44780 e bus a 8 bit (avevo posto quindi non mi sono complicato ulteriormente la vita...). Poi ho l'ICD2 collegato sui pin RB6 e RB7.Il clock è un quarzo a 20 MHz con i condensatori da 22 pF. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 21 agosto 2007 Segnala Share Inserita: 21 agosto 2007 Attenzione!!! Quando è inserito l'ICD2 i tempi di ritardo aumentano di almeno un ordine di grandezza. Se per esempio hai programmato 20ms con ICD2 inserito hai >200ms!Se la tua applicazione si basa su ridardi calcolati con loop da ripetersi n volte, probabilmente sono troppo corti. Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 21 agosto 2007 Segnala Share Inserita: 21 agosto 2007 ecco... svelato l'arcano 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