Nybörjarfel?
Nybörjarfel?
Hej jag sitter och labbar med min PIC16F628A Jag använder mig utav MikroBasic som pragramering miljö. Jag hade tänkt att testa och labba lite med min fina LED-skärm. Detta är en Sharp LM16A211. Jag har fått den att fungera tillsammans med Denna picen innan, men jag får det inte att fungera nu. Den skriver mara ut massa konsitga tecken istället för det jag har bätt den till. Eller tecknen är inte så konsitga de är riktiga tecken men de är inte de som jag bett den skriva.
Jag hade bifogat kod osv. men jag måste hitta laddaren till min laptop förs där jag har allting. Jag har kollat så att alla DB0-7 sitter rätt samt alla andra. Det ända som jag har gjort anorlunda från förra gången(för någon månad sedan.) är att använda extern kristall Men jag har ändrat till rätt frekvenstal i koden och jag har ändrat i _config. Men ingen skillnad förutom andra tecken.
Hoppas att detta är lätt fixat. Jag kan bifoga mer info och kod efterbehag, men jag måste leta rätt på laddaren som sagt var.
//Kalf
Jag hade bifogat kod osv. men jag måste hitta laddaren till min laptop förs där jag har allting. Jag har kollat så att alla DB0-7 sitter rätt samt alla andra. Det ända som jag har gjort anorlunda från förra gången(för någon månad sedan.) är att använda extern kristall Men jag har ändrat till rätt frekvenstal i koden och jag har ändrat i _config. Men ingen skillnad förutom andra tecken.
Hoppas att detta är lätt fixat. Jag kan bifoga mer info och kod efterbehag, men jag måste leta rätt på laddaren som sagt var.
//Kalf
Jag hade då den interna kristallen(4mhz) Nu 20.
Exempel på tecken kan jag inte ge exakt för jag har det inte inkopplat. Men kan fixa det till imorgon.
Jag använder exempel koden som följde med mitt IDE(mikroBasic) Det enda jag ändrat är att istället för att skriva texten i kolumn 2 i kolumn 1.
Här är koden:
Min config är också default i programmet altså med intern klockan:
_CONFIG: 0x3F6A (eller: _CONFIG: _WDT_OFF _LVP_OFF _HS_OSC) Vad skall man välja ifall man vill ha extern klocka?
Exempel på tecken kan jag inte ge exakt för jag har det inte inkopplat. Men kan fixa det till imorgon.
Jag använder exempel koden som följde med mitt IDE(mikroBasic) Det enda jag ändrat är att istället för att skriva texten i kolumn 2 i kolumn 1.
Här är koden:
Kod: Markera allt
'******************************************************************************
' microcontroller P16F628
'
' Project LCD_demo
' This project is designed to work with PIC 16F628
' with minor adjustments, it should work with any other PIC MCU
'
' This code demonstrates displaying text on LCD (4 bit intrface)
' and use of LCD library procedures and functions.
'******************************************************************************
program LCD_demo
main:
Lcd_Init(PORTB) ' initialize LCD connected to portb
lcd_cmd( LCD_CLEAR) ' send command to LCD "clear display"
lcd_cmd( LCD_CURSOR_OFF) ' send command cursor off
lcd_out(1,1,"mikroElektronika") ' print txt to LCD, 2nd row, 1st column
end.
Min config är också default i programmet altså med intern klockan:
_CONFIG: 0x3F6A (eller: _CONFIG: _WDT_OFF _LVP_OFF _HS_OSC) Vad skall man välja ifall man vill ha extern klocka?
> Jag hade då den interna kristallen
*Ingen* PIC har en "intern kristall".
Däremot har många en "intern oscillator", men den har ingenting med någon kristall att göra.
> lcd_out(1,1,"mikroElektronika") ' print txt to LCD, 2nd row, 1st column
Stämmer kommentaren överens med koden ????
> _CONFIG: _WDT_OFF _LVP_OFF _HS_OSC) Vad skall man välja ifall man vill ha extern klocka?
"_HS_OSC" betyder "extern High-Speed kristall" och är helt korrekt för en 20 Mhz kristall.
Eller vad menar du med "extern klocka" ?
Har du en extern färdig klocksignal som du vill köra med ?
> Nu har jag kopplat in det och LCD'n viar är:
> Helarutanhelarutanöö_00 o
Jaha, är det inte OK ?
*Ingen* PIC har en "intern kristall".
Däremot har många en "intern oscillator", men den har ingenting med någon kristall att göra.
> lcd_out(1,1,"mikroElektronika") ' print txt to LCD, 2nd row, 1st column
Stämmer kommentaren överens med koden ????
> _CONFIG: _WDT_OFF _LVP_OFF _HS_OSC) Vad skall man välja ifall man vill ha extern klocka?
"_HS_OSC" betyder "extern High-Speed kristall" och är helt korrekt för en 20 Mhz kristall.
Eller vad menar du med "extern klocka" ?
Har du en extern färdig klocksignal som du vill köra med ?
> Nu har jag kopplat in det och LCD'n viar är:
> Helarutanhelarutanöö_00 o
Jaha, är det inte OK ?
OK, jag har trott att klocka, kristall och oscilliator var samma sak, men det är det då tydligen inte, får vara tydligare i forsättningen då.
>Stämmer kommentaren överens med koden ????
Som jag sa tidigare så är det det ända jag andrat i koden ifrån det som följde med som exempel. Jag har glömt/inte brytt mig om att ändra kommentaren.
>Har du en extern färdig klocksignal som du vill köra med ?
Nej jag vill köra med min kristall på 20mhz men då är _CONFIG rätt då för att kunna köra med extern kristall.
>> Nu har jag kopplat in det och LCD'n viar är:
>> Helarutanhelarutanöö_00 o
>Jaha, är det inte OK ?
Nej Den skall skriva ut "mikroElektronika"
Så här menar jag att det ser ut:

Usäkta för dålig bildkvalite, men jag var tvungen att använda mobilen, min kamera ville inte fungera med denna datorn.
//Kalf
>Stämmer kommentaren överens med koden ????
Som jag sa tidigare så är det det ända jag andrat i koden ifrån det som följde med som exempel. Jag har glömt/inte brytt mig om att ändra kommentaren.
>Har du en extern färdig klocksignal som du vill köra med ?
Nej jag vill köra med min kristall på 20mhz men då är _CONFIG rätt då för att kunna köra med extern kristall.
>> Nu har jag kopplat in det och LCD'n viar är:
>> Helarutanhelarutanöö_00 o
>Jaha, är det inte OK ?
Nej Den skall skriva ut "mikroElektronika"
Så här menar jag att det ser ut:

Usäkta för dålig bildkvalite, men jag var tvungen att använda mobilen, min kamera ville inte fungera med denna datorn.
//Kalf
- Greve Hamilton
- EF Sponsor
- Inlägg: 544
- Blev medlem: 4 september 2004, 15:03:35
- Ort: GBG
Har du lagt alla oanvända pinnar på LCD:n till GND (inkl. R/W)?
Testa att göra ett nytt "Project" i editorn och kopiera din kod dit, det måste jag göra ibland (iofs mC) när jag har skrivit väldigt länge. Varför vet jag inte, antagligen någon bugg i editorn. Det är i alla fall vad jag vill tro, så jag skyller på det.
Testa att göra ett nytt "Project" i editorn och kopiera din kod dit, det måste jag göra ibland (iofs mC) när jag har skrivit väldigt länge. Varför vet jag inte, antagligen någon bugg i editorn. Det är i alla fall vad jag vill tro, så jag skyller på det.
- JimmyAndersson
- Inlägg: 26651
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Kalf:
Någonstans måste ju texten "Helarutan" ha skrivits in. Det är ju inget som varken LCD'n eller MikroBasic kan hitta på själv. Men detta syns inte ett tecken av i koden. Skumt, minst sagt.
Nu tror jag inte det har med problemet i sig att göra, men har du skrivit in rätt klockhastighet i "Clock" (i rutan till vänster om koden.) ? Det är detta som MikroBasic använder för att se till så at delayer mm blir rätt. Jag använder MikroBasic flitigt, men skriver aldrig in _CONFIG. Det ändrar jag i menyn Project -> Edit project -> fältet "Device Flags". Var skriver du in _CONFIG förresten?
GreveHamilton: Aha, så det är samma problem i MikroC alltså. (Känner igen symptomen från MikroBasic.)
Någonstans måste ju texten "Helarutan" ha skrivits in. Det är ju inget som varken LCD'n eller MikroBasic kan hitta på själv. Men detta syns inte ett tecken av i koden. Skumt, minst sagt.
Nu tror jag inte det har med problemet i sig att göra, men har du skrivit in rätt klockhastighet i "Clock" (i rutan till vänster om koden.) ? Det är detta som MikroBasic använder för att se till så at delayer mm blir rätt. Jag använder MikroBasic flitigt, men skriver aldrig in _CONFIG. Det ändrar jag i menyn Project -> Edit project -> fältet "Device Flags". Var skriver du in _CONFIG förresten?
GreveHamilton: Aha, så det är samma problem i MikroC alltså. (Känner igen symptomen från MikroBasic.)
>Har du lagt alla oanvända pinnar på LCD:n till GND (inkl. R/W)?
Jag testadedet nu då visade displayen följande istället:
´´p@´Ppp´´´ppppp
Och markeringen(cursor) stannar och blinkar på första p'et sär det är 5st p i rad.
>har du skrivit in rätt klockhastighet i "Clock"
Ja.
>men skriver aldrig in _CONFIG. Det ändrar jag i menyn Project -> Edit project -> fältet "Device Flags". Var skriver du in _CONFIG förresten?
Dät är där jag ändrar med, men jag tyckte det var enklare att förklara genom att skriva upp alla på en rad.
>Testa att göra ett nytt "Project" i editorn och kopiera din kod dit
Ingen skillnad.
//Kalf
Jag testadedet nu då visade displayen följande istället:
´´p@´Ppp´´´ppppp
Och markeringen(cursor) stannar och blinkar på första p'et sär det är 5st p i rad.
>har du skrivit in rätt klockhastighet i "Clock"
Ja.
>men skriver aldrig in _CONFIG. Det ändrar jag i menyn Project -> Edit project -> fältet "Device Flags". Var skriver du in _CONFIG förresten?
Dät är där jag ändrar med, men jag tyckte det var enklare att förklara genom att skriva upp alla på en rad.
>Testa att göra ett nytt "Project" i editorn och kopiera din kod dit
Ingen skillnad.
//Kalf
Jag antar att koden innehåller någonslags delayer för att LCDn skall hinna med, och dom ändras förmodligen inte när du ändrar klockfrekvens (vilket gör att du nu har för korta delayer). Så det blir till att kolla delayerna (om jag inte missat något).
Edit: Verkar som det skall fixa sif själv i Micro* , men kolla iallfall så att frekvensen verkligen är rätt ställd, testa tex om delayerna stämmer om du vill blinka en diod en gång per sekund.
Edit: Verkar som det skall fixa sif själv i Micro* , men kolla iallfall så att frekvensen verkligen är rätt ställd, testa tex om delayerna stämmer om du vill blinka en diod en gång per sekund.
- Greve Hamilton
- EF Sponsor
- Inlägg: 544
- Blev medlem: 4 september 2004, 15:03:35
- Ort: GBG
> jag har trott att klocka, kristall och oscilliator var samma sak,
"Klocka" är igentlien inget bra begrepp alls, det kan betyda så väldigt mycket...
"Kristall" är (i detta fall) en speciell typ komponent som t.ex kan användas för att få en stabil frekvens m.h.a en "kristalloscillator".
"Oscillator" är en elektronisk krets som ger någon slags (klock-) signal ut. Den *kan* vara kristallstyrd, men inte alltid...
De flesta PIC's har dels en kristalloscillator (som behöver en extern kristall), dels någon slags intern oscillator (som *aldrig* använder en kristall).
>Jag har glömt/inte brytt mig om att ändra kommentaren...
Jag hoppas *verkligen* att det är "glömt" !!!
En annan sak, är koden du visar *hela* programmet ?
Var sätter du PORTB som utgångar ?
> Har du lagt alla oanvända pinnar på LCD:n till GND
D0-D3 bör/ska lämnas "öppna" om det är en vanlig HD44780 display.
"Klocka" är igentlien inget bra begrepp alls, det kan betyda så väldigt mycket...
"Kristall" är (i detta fall) en speciell typ komponent som t.ex kan användas för att få en stabil frekvens m.h.a en "kristalloscillator".
"Oscillator" är en elektronisk krets som ger någon slags (klock-) signal ut. Den *kan* vara kristallstyrd, men inte alltid...
De flesta PIC's har dels en kristalloscillator (som behöver en extern kristall), dels någon slags intern oscillator (som *aldrig* använder en kristall).
>Jag har glömt/inte brytt mig om att ändra kommentaren...
Jag hoppas *verkligen* att det är "glömt" !!!
En annan sak, är koden du visar *hela* programmet ?
Var sätter du PORTB som utgångar ?
> Har du lagt alla oanvända pinnar på LCD:n till GND
D0-D3 bör/ska lämnas "öppna" om det är en vanlig HD44780 display.
