Roches
Domoticz en ESP8266, goede combo!!!
Ik ben al de hele avond aan het prutsen en krijg het niet voor elkaar
dat mijn LCD welke goed aangesloten is niet goed wordt opgestart door mijn PIC.
LCD heeft het met dezelfde PIC gedaan!!!
Maar na het opnieuw programmeren met de volgende code wordt hij niet meer gestart.
Device 16F628A ;Gebruik een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
XTAL = 4
HSERIAL_BAUD = 9600
HSERIAL_RCSTA = %10010000
HSERIAL_TXSTA = %00100000
HSERIAL_CLEAR = On
ALL_DIGITAL TRUE
DelayMS 500 ;LCD stabilisering
Dim ONTVANGEN As Byte
Dim POSITIE As Byte
Dim LIJN As Byte
Cls
Print At 1,1, "Display OK"
DelayMS 500
Print At 2, 1, "Lijn 2 ook"
DelayMS 1000
LIJN = 1
Cls ;Wis scherm en zet cursor links bovenaan
While 1 = 1
ONTVANGEN = 0
POSITIE = 1
While ONTVANGEN <> 13
HRSin Dec ONTVANGEN
Print At LIJN, POSITIE, ONTVANGEN
Print At 2,12, Dec ONTVANGEN , " "
POSITIE = POSITIE + 1
Wend
LIJN = LIJN +1
If LIJN = 3 Then LIJN = 1
Wend
End ;Einde programma
Even niet kijken naar de baudrate en intrc, wilde een HS_OSC (20MHz) aansluiten (XTAL 20) en daarna ging niks meer.
Heb ik hier iets fout gedaan, ik kan het niet vinden.
Gecompileerd met Proton IDE 3.2.5.5
benleentje
Golden Member
Je kan de code tags die je hebt gebruik ook naar picbasic zetten. Dan krijgt alles gelijk de goede kleur dat leest wat makkelijker.
Heb je een 4Mhz of 20Mhz kristal aanzitten. Als je een 20Mhz gebruikt maar in het programma een 4Mhz vermeldt dan kunnen de signalen wel een te snel worden voor het lcd display. Alles gaat immer 5 keer sneller dan proton heeft bedoelt. Een delay van 500mS wordt dan een delay van 100mS.
Wat ik vaak doe in deze vervelende situaties is toch maar weer terug gaan naar een werkend program en schakeling. Dit gewoon om alles uit te kunnen sluiten. Je weet dan dat het programma gewerkt heeft. Werkt het niet meer en je weet zeker dat de schakeling in orde is dan gaat her programmeren fout. Werkt het oude programma wel dan zit er in het nieuwe programma iets wat het lcd display verstoort.
Roches
Domoticz en ESP8266, goede combo!!!
Ik ben er achter dat het te maken heeft met de initialisatie van de UART op een of andere manier loopt hij daarop vast.
Uiteraard gebruik ik een XTAL 20 als ik er een 20MHz-kristal aan hang.
Dacht even dat het daar aan lag, omdat ik dat als eerste had veranderd.
Volgende code werkt wel:
Device 16F628A ;Gebruik een 16F628A type
Config HS_OSC, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
XTAL 20
SERIAL_BAUD = 300
RSOUT_PIN = PORTB.1
RSOUT_MODE = TRUE
RSOUT_PACE = 10
RSIN_PIN = PORTB.0
RSIN_MODE = TRUE
Dim ONTVANGEN As Byte
Dim POSITIE As Byte
Dim LIJN As Byte
DelayMS 500 ;LCD stabilisering
Cls ;Wis scherm en zet cursor links bovenaan
Print "Hello world!" ;Plaats tekst op het display
DelayMS 3000
LIJN = 1
Cls ;Wis scherm en zet cursor links bovenaan
OPNIEUW:
ONTVANGEN = 0
POSITIE = 1
While ONTVANGEN <> 13
RSIn ONTVANGEN
If ONTVANGEN = 13 Then GoTo NXT
Print At LIJN, POSITIE, ONTVANGEN
Print At 2,12, Dec ONTVANGEN , " "
POSITIE = POSITIE + 1
NXT:
Wend
LIJN = LIJN +1
If LIJN = 2 Then LIJN = 1
GoTo OPNIEUW
Zoals je ziet, de picbasic-code gevonden.
EDIT:
Ben er achter, op poort B.2 zat de LCD_enable pin, deze dus omgegooid naar poort B.0
DECLARE LCD_ENPIN PORTB.0
Opgenomen in het programma, nu werkt alles correct.....