Sida 1 av 2

mikroC -> 16F628A -> PLED -> inge bra..

Postat: 9 januari 2007, 00:50:36
av rektifier
tjenamors,

är ganska ny på det här med elektronik och det här är min första programmering av en PIC med mikroC. har försökt koppla in en display men den är bara helt svart. är lite osäker på hur jag ska koppla ihop allt. verkar vara svårt att hitta exempel som kombinerar 16F628A, PLED och mikroC. :?

så...finns det nån vänlig själ här som kan peka mig i rätt riktning? gärna i form av ett schema där det framgår hur kopplingen skall göras samt hur jag initierar/slår på den från mikroC. (har kikat på de exempel som följer med men eftersom den bara är helt svart så är jag osäker på syntaxen.. )


det jag har är alltså:
Display - http://www.fractronics.com/2x20oled_new.shtml
PIC16F628A
mikroC

och displayen är helt svart. jag har haft den kopplad mot paralellporten tidigare då den fungerade felfritt. det betyder ju förstås ingenting.... :lol:


DankeDanke!
/Micke

Postat: 9 januari 2007, 00:56:00
av Jeppsson
Var inne i MikroC tryck "F1" för att öppna Help filen välj fliken "mikroC Libraries" klicka på "LCD (4-bit interface)" enklast att koppla upp. Rulla längst ner på den sidan och där är förklarat hur du skall koppla upp displayn och PICen samt att där är ett program exempel som man bara kan kopiera!

Postat: 9 januari 2007, 00:59:32
av rektifier
ok det var därifrån jag har tagit kopplingen men eftersom jag e lite färsk på det här så ska jag gå igenom allt ytterligare en gång.

tack för snabbt svar


/m

Postat: 9 januari 2007, 01:13:35
av rektifier
fan i helvete... :evil:

undrar om jag har bränt den...

Postat: 9 januari 2007, 01:14:59
av bengt-re
Nja, oftast så har man kodat fel eller kopplat fel. Det GÅR bränna dem, men ofta klarar de sig

Postat: 9 januari 2007, 01:19:29
av rektifier
kan jag testa det på nåt sätt? typ lägga spänning över några pinnar för att få fram nån testbild eller nåt?

Postat: 9 januari 2007, 02:46:39
av JimmyAndersson
Om du kvar kabeln till datorn så kan du ju plugga in den dit igen och testa.
Annars har jag för mig att PLED-displayer (precis som OLED) är helt svarta tills man skickar ut tecken till den.

Postat: 9 januari 2007, 06:27:45
av DragonOrb
Hade en sån uppkopplad på labbplattan för ett tag sedan. Dom är helt svarta tills man skickar text / cursor

Postat: 10 januari 2007, 23:04:07
av rektifier
efter lite kopplande och mest sinnesprogrammerande så har jag fått liv i den. fast.... jag har bara en massa svarta rutor. skulle förstå om det va i hela displayen men det är bara på den övre raden... känns lite märkligt eller?

Postat: 10 januari 2007, 23:19:17
av JimmyAndersson
Jag har varit med om det på LCD-displayer, men inte PLED eller OLED.
Möjligen så kan det bero på timing-problem, dvs för korta pauser mellan de "kommandon" som du skickar till displayen. Prova att öka alla tider. Det kan även bero på någon miss i koden. Lägg gärna upp koden så kan vi kika.

Postat: 10 januari 2007, 23:36:29
av rektifier
jag va inte medveten om att jag behövde köra delayer mellan kommandon som jag skickade till displayen. (fanns ju inga såna i de exempel som kommer med mikroC..) koden har jag ju ändrat 100 gånger men nu ser den ut så här:

Kod: Markera allt

  void updateLCD(){

  
     char *text = "fu**in fruitcake";


     Lcd8_Config(&PORTA,&PORTB,4,5,3,0,1,2,3,4,5,6,7);
     Delay_8ms();
     Lcd8_Out(1, 1, text);        // Print text

}


 /* main entry */
 void main(){
 
      CMCON  |= 0x07;  // turn off comparators
      TRISA = 0xc7;    // RB3,4 och 5 är ut, resten in
      TRISB = 0;       // Alla B är ut
     
      
      updateLCD();
}

några idéer förslag?

Postat: 10 januari 2007, 23:38:37
av sodjan
Jag kan inte C specielt bra, men varför gör man inte "CMCON = 0x07;" ?

Postat: 10 januari 2007, 23:43:12
av rektifier
CMON-raden var visst en kvarleva från några tester...läste några trådar på mikroelektronikas forum och det hade tydligen hjälpt nån stackare så man e ju tvungen att testa.. men som svar på din fråga: ingen aning..

Postat: 10 januari 2007, 23:52:45
av sodjan
OK, jag var lite otydlig, jag *vet* varför man ska sätta CMCON = h'07'.

Men vad är skillnaden på "|=" och "=" ?

Postat: 11 januari 2007, 01:05:03
av JimmyAndersson
En liten detalj bara:
TRISA = 0xc7; // RB3,4 och 5 är ut, resten in

Det borde nog ha stått // RA3,4..osv.


"jag va inte medveten om att jag behövde köra delayer mellan kommandon som jag skickade till displayen."

Jag visste inte att du använde de inbyggda LCD-rutinerna. När du använder dem så behöver du inte lägga till någon extra delay. LCD-rutinerna ordnar allt sådant. Tyvärr blir det en aning svårare att felsöka då eftersom man inte ser vad som händer, iallafall i inte i C-koden.


Lite sånadär standardgrejjer:
Du är 100% säker på att allt är rätt kopplat?
Hur är det med klockhastigheten på den PIC-kretsen? Allt är rätt inställt både i "Device Flags" och vid "Clock" ?
Du skulle kunna sätta lysdioder på utgångarna som PLED'en använder för att se om du får någon signal där.