Hallo!

Inmiddels weer lekker aan het rommelen, loop tegen een uitdaging aan. Ik heb een LCD (van Voti met HD44780) en een PIC 16F648. Als ik de interne oscilator gebruik van de PIC gaan zowel progjes met LED als met de LCD goed. Ik heb al een heel menu gemaakt, werkt allemaal prachtig. Nu wil ik graag met een bus gegevens gaan verzenden en heb ik dus een externe oscilator nodig en daar gaat het mis. De LED programma's draaien allemaal prima (tijden kloppen) alleen de LED geeft dan alleen op de eerste regel een zwarte balk...

Dit is de code (van picbasic.nl) die gebruik met interne oscilator:



DEVICE 16F648A                               			
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE                            				 

; declaraties
DECLARE LCD_ENPIN = PORTA.3   				
DECLARE LCD_RSPIN = PORTB.0  						    
DELAYMS 500                  					
CLS                          					

PRINT AT 1, 7, "Hallo."      					
PRINT AT 2, 1, "Hoe gaat ie?" 						 
Opnieuw:                      					 

TOGGLE PORTA.2               					 
DELAYMS 1000               					 
GOTO Opnieuw              						
END                           						

Dit werkt dus prima. Dan met een resonator van 20Mhz deze code:


DEVICE 16F648A                						 
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, HS_OSC 
XTAL 20                      						 
ALL_DIGITAL TRUE             						

; declaraties
DECLARE LCD_ENPIN = PORTA.3  					 
DECLARE LCD_RSPIN = PORTB.0  						  
DELAYMS 500                  					
CLS                          						 
PRINT AT 1, 7, "Hallo."      					 
PRINT AT 2, 1, "Hoe gaat ie?"						

Opnieuw:                    					 

TOGGLE PORTA.2               					 
DELAYMS 1000                 					
GOTO Opnieuw                 					 

END                   

Het LED gedeelte doet het prima, net als met de interne, de LCD alleen niet...

NB: omwille van het overzicht heb ik de REM regels weggelaten.

Iemand een idee?

Zijn alle verbindingen goed? Een zwarte balk op je LCD betekent dat hij niet goed geïnitialiseerd wordt.

Controleer of alle verbindingen met het LCD goed aangesloten zitten, en of er geen kleine kortsluitingen zitten.

P.S. Meestal zorgen REM-regels voor meer duidelijkheid. Nu is dit een eenvoudig stukje code, dus het is geen ramp, maar toch.

Van de REM regels snap ik, maar hij zette vanalles door elkaar, normaal zou ik ze laten staan, nu was het maar weing code, vandaar :)

Wat betreft de verbindingen. Heeft dat invloed op het moment dat je op andere snelheden werkt? M.a.w. zou het kunnen dat met slechte verbindingen de boel wel werkt op 4Mhz met een interne osc en niet op 20 Mhz met een externe?

Werkt het kristal wel? Anders klopt de LCD timing niet.
(Werkt de porta toggle iedere seconde wel?)

Ja die gaat prima... Ik heb het kristal al eens vervangen en werk nu met een resonator, maar dat moet allemaal niet uit maken volgens mij.

Ik ga nu eens proberen om informatie te verzenden zonder dat ik het lcd gebruik.

hmm... De bedrading eens bekeken, leek niks mee aan de hand. Programma er nog eens ingezet en toen werkte het LCD wel... Alleen de knoppen (met RCIN) nog niet, maar dat komt wel.

Toch bedankt voor het meedenken :)

Dat is heel fijn. Wat was het probleem? Misschien heeft later iemand er nog iets aan als je de oplossing hier neerzet.

Ja ik ben bang dat het toch een gevalletje slechte bekabeling was.

Wat betreft de RCIN knoppen lag het aan de weerstand waarde die ik ingevoerd had, die waren totaal anders op hogere snelheid. Ik heb dus die waarde op het LCD neer laten zetten en toen die nieuwe waarden ingevoerd, toen werkte het perfect!