Problem med microC - too many params

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med microC - too many params

Inlägg av Muppis »

"testkoden" ska tydligen vara denna. Ber om ursäkt för att jag glömde den innan.

Kod: Markera allt

// ------------------------------------------------------
// GLCD Picture name: herman.bmp
// GLCD Model: KS0108 128x64
// ------------------------------------------------------

unsigned char const herman[1024] = {                              //Bilden
   0,  0,252,252, 96,248,220,  4,  0, 56, 60,100,100,204,200,  0,
 248,252,  4,252,248,  0, 48, 24,252,252,  0,  0,248,252,  4,252,
 248,  0,  4,196,244, 60, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,128,128,128,
 128,128,128,128,128,199,163, 39, 38, 44, 32, 64, 64, 64,128,128,
 128,144, 24, 24, 48,224,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,195, 99,240,240,  3,  3, 32, 49, 19,242,226,  3, 97,240,
 145,243, 98,  3,193,192,  0,192,195,  3,224,240,145,179, 34,  3,
   1,192, 32,243,243,  0,  0,  0,  0,192,192, 64, 64,192,128,  0,
 208,208,  0,192,192,  0,192,192,  0,240,240,  0,128, 64, 64,192,
 128,  0,192,192, 64, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0, 15,113,129,  0,  0,  0,  0,
 192, 56,  6,141,140, 64,177, 29,  3,  1,  1,  1, 97,226,226, 66,
   2,  4,  9,  9, 18, 34, 66,132,136, 48,192,  0,  0,  0,  0,  0,
   0,  0,  0,  0, 15, 15,  0,  0, 12, 14, 11,  9,  8,  0,  7, 15,
   8, 15,  7,  0, 12, 15,  3, 15, 12,  0,  7, 15,  8, 15,  7,  0,
   3,  2,  2, 15, 15,  2,  0,  0,  0, 63, 63,  8,  8, 15,  7,  0,
  15, 15,  0, 12, 15,  3, 15, 12,  0, 15, 15,  0,  6, 15,  9, 15,
  15,  0, 15, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0, 56,196,  8, 48,192,  0,  0,240,  8,  4,  3,  1,  1,  1,
   1,  1,  1,  0,  0,  0,  0,  3,  4,  8, 16, 32, 64, 64,128,128,
 128,128,128,128,128,128,128, 64,120, 69, 35, 38, 24,  0,  0,  0,
   0,  0,112,120,200,200,152,144,  0,232,232,  0, 64,168,160,224,
 200,  0,248,248,  0,224,224,  0,224,224,  0,224,224, 32, 32,224,
 192,  0,192,224, 32, 32,224,192,  0,224,224, 32, 32, 32,240,248,
  32,  0,224,224, 32, 32,  0, 64,168,160,224,200, 32,240,248, 32,
  32,240,248, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,
 178,226, 93,103, 70,  8,  0,  3, 12,240,  1,  2,  2,  2,  2,  2,
 254,134, 10, 19, 97,192, 64,128,128,128, 64, 96, 32,144, 72, 52,
  14,128,192, 48,  4,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,226,230,132,132,135,  3,144,159, 15,  0,  3,135,132,  7,
   7,  0,231,231,  0,  1,231,230,  7,  1,128,159,159,132,  4,  7,
 131,128,131,135,  4,132,135,131,128,135,135,128,128,128,  3,  7,
   4,128,135,135,  0,  0,128,131,135,132,135,  7,  0,  3,  7,  4,
   0,  3,  7,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  1,  2,  2,  2,  6, 14, 15, 15, 30, 28, 28, 30, 14, 14,
  15, 15,127,252,248,248,249,250,250,250,250,250,253,124, 62,127,
 143, 31, 63,127,248,240,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0, 31, 31, 16, 16, 31, 15, 64, 71,127, 56, 31,  7,  0,  0,
   0,  0, 31, 31,  1,  1, 31, 31,  0, 15, 31, 18, 18, 27, 11,  0,
  31, 31,  0,  0,  0, 31, 31,  0,  0, 31, 31,  0,  0, 31, 31,  0,
  13, 30, 18, 31, 31,  0, 31, 31,  0,  0, 31, 31,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0, 15, 31,127,255,255,255,255,255,135,128,128,  0,  0,
 192, 65, 50, 30, 15, 15, 15, 15,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0,  0,192,240,176,192,224, 48, 16,  0,192,208, 16,  0,192,
  64,192,128,  0,  0,192,240, 48,  0,192,240, 48,  0,  0,  0,  0,
   0,  0,224,144, 80, 48,  0,  0,  0,  0,  0,128,224, 96, 16, 16,
  48, 32,  0,128,192, 64,192,128,  0,  0,192,192,128,192,192,128,
 192,192,  0,  0,192,192, 64,192,128,  0,  0,128, 64, 64,192,192,
   0,  0,192,192,128,192,192,  0,192,192,  0,  0,192, 64,  0,  0,
   0,  0,  0,  0,128,224,240,248,249,249,248,248,248,240,225,193,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
   0,  0, 12, 15,  3,  1,  0,  3, 47, 44, 60, 31,  3,  0,  7, 15,
  10, 11,  3,  0, 12, 15,  3,  0, 12, 15,  3,  0,  0,  0,  0,  0,
   7, 15,  9, 11,  6, 12, 10,  0,  0,  0,  0,  7, 15,  8,  8, 12,
   6,  2,  7, 15,  8, 12,  7,  3,  0, 14, 15,  1, 14, 15,  1, 14,
  15,  1, 48, 63, 15,  8, 12,  7,  3,  0, 14, 14,  9, 15, 15,  1,
   0, 14, 15,  1, 14, 15,  1, 32, 33, 63, 28,  7,  1,  0,  0,  0,
   0,  0,  0,  0, 15, 63,127,255,255,255,255,255,255,127, 63, 31,
   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
};

void main() {
  OSCCON =  255;                               //Sätt internoscillatorn på 8 MHz
  ADCON1 = 15;                                 //Gör portA digital
  Glcd_Init(&PORTA, 1, 0, 2, 3, 4, 5, &PORTB); //Initiera displayen
  Glcd_Fill(0);                                //Rensa displayen
  Glcd_Image(herman);                          //Visa bilden

  while(1){
  Glcd_Box(0,0,127,63,2);                      //Invertera bilden
  delay_ms(3000);                              //Vänta 3 sekunder
  }

}
Den koden funkar, men ger varningar i MikroC då APIt för GLCD har ändrats till globala variabler istället för parametrar till Glcd_Init.
Det jag lagt märke till är att PORTA inte används i koden jag postade i inlägget innan, jag är också osäker på vad tusan "1,0,2,3,4,5" betyder, den gamla dokumentationen för MicroC var något knapphändig som nämnts tidigare.

Jag kollade lite snabbt på google och 15 är tydligen 0xF, är det en förkortning av 0x0F? Det verkade så vad jag kunde se, jag har inte jobbat något nämnvärt med hex innan.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med microC - too many params

Inlägg av sodjan »

> jag har inte jobbat något nämnvärt med hex innan.

Right, du har du ju en hel del hemläxa att fixa innan det finns anledning
för någon annan att riva i detta. Varför ska vi anta att du för övrigt vet
vad du pysslar med när du inte ens förstår hex värden ?

> jag är också osäker på vad tusan "1,0,2,3,4,5" betyder,

Du menar i "Glcd_Init(&PORTA, 1, 0, 2, 3, 4, 5, &PORTB)" ?

Vad är problemet ? Hur menar du igentligen ?
Skulle de betyda något annat än det som manualen specificerar för Glcd_Init(...) ?

> den gamla dokumentationen för MicroC var något knapphändig som nämnts tidigare.

Vilken "gamla" dokumentationen ? Finns det flera ?
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med microC - too many params

Inlägg av Muppis »

bos postade tidigare http://www.easypsoc.com/pdf/mikroc/mikroc_manual.pdf vilket är en äldre dokumentation över GLCD-APIt, fast i mikroC istället för mikroBasic som TS använder.

Jag sade att jag inte har hållt på med mikroprocessorer tidigare, jag har heller inte använt MikroC eller MikroBasic, så jag vet inte varför du skulle anta något öht?

Angående parametrarna till Glcd_init så har jag listat ut vad det var.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med microC - too many params

Inlägg av sodjan »

Jag antar inget. Jag försöker förstå vad ni håller på med och
kan bara konstatera att om man måste fråga om 15 motsvarar 0x0F
så har man större problem än vad man kanske tror själv. Det kommer
att bli väldigt svårt att komma någonstans med felsökningen om ni
saknar så pass grundläggande kunskaper. Men det är ju å andra
sidan väldigt lätt att åtgärda... :-)

Sen så är jag inte helt med på varför ni inte bara arbetar vidare med den
testkoden som ni har och som "fungerar". Eller kör lite traditionell
felsökning på koden som inte fungerar. Sannolikheten för att någon
annan sitter med samma display och med en MikroC miljö är kanske
inte så stor i alla fall.

När det gäller manualer så blir jag lite osäker. Jag har samma manual som
du länkade till nerladdad. Men när jag kollar hos mikroElektronia nu så
hittar jag enbart "MicroC PRO", vilket verkar vara en lite annorlunda produkt
med en annan manual.

Hur som helst. Jag kollade på Glcd_Init i den manual du länkade till, och den
har samma beskrivning av parametrarna som den manual jag har lokalt (sannolikt
samma manual). Så då kvarstår frågan hur du menade med vad "1,0,2,3,4,5" betyder,
d.v.s varför det inte skulle betyda just det som manualen beskriver ? Så långt så
är det ju i alla fall ganska tydligt.
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med microC - too many params

Inlägg av Muppis »

Angående "1,0,2,3,4,5" till glcd_init() så har de inte skrivit att i fallet

Kod: Markera allt

Glcd_Init(&PORTA, 1, 0, 2, 3, 4, 5, &PORTB);
att det då bestämmer att cs1 är PORTA+1? Det känns som rena gissningsleken. Det är väl antagligen därför de har ändrat APIt i MicroBasic.

Helldin skrev precis till mig att han fick igång den med OSCCON=255; tillsammans med att han drog ur kristallen. Men det slutade att fungera efter att han startat om den genom att dra ur strömmen. Då har vi kommit en bit på vägen iaf.

Tack för hjälpen hittils!
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med microC - too many params

Inlägg av sodjan »

> Glcd_Init(&PORTA, 1, 0, 2, 3, 4, 5, &PORTB);
> att det då bestämmer att cs1 är PORTA+1? Det känns som rena gissningsleken.

Vad betyder "PORTA+1" ?

Det står ju att första parametern ("ctrl_port") talar om vilken port man
använder och att de andra (t.ex "cs1" o.s.v) talar om vilke pinne som
respektive funktion är kopplad till. Är det inte så ? Eller hur tolkar ni det ?

> Helldin skrev precis till mig att han fick igång den med OSCCON=255; tillsammans med att han drog ur kristallen.

Och ni har 100% koll på vad detta betyder ?
Det låter som att det hoppade igång när ni bytte från extern kristall till INOSC.
Hade ni inte verifierat att processorn faktiskt körde koden alls ?
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med microC - too many params

Inlägg av Muppis »

Jag tolkade det som att 1 är just bit 1 på PORTA, vilket är RA0/AN0 i detta fallet? men jag kan ha fel.. det har hänt förr.
Jag är som sagt inte så bevandrad inom pic och mikroprocessorer, jag har bara kollat i databladet lite grann över det nödvändigaste för att förstå vad som händer öht.

Jag har dålig koll på vad det betyder, men jag anar att det har med OSCCON och vald oscilator att göra som du säger, jag försöker läsa i databladet vad som kan tänkas rätta till det. Hittils har vi provat OSCCON = 0xFF som i exemplen och OSCCON = 0x7C för att använda primary oscilator. Jag är lite osäker på vad OSTS har för betydelse i detta fallet, jag får läsa mer om det..

Jag har bett honom att använda ICD-verktygen för att se vad som händer, jag får återkomma om en stund med det.

När han drog ur kristallen så fick han lite skumma bilder på displayen, ibland vandrar det vita över displayen i horisontell riktning, och ibland vertikalt ifrån ena änden till den andra.
bos
Inlägg: 2308
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: Problem med microC - too many params

Inlägg av bos »

Jag vill inte hoppa in i den här trådens detaljer, men det jag läste här:

> Jag är som sagt inte så bevandrad inom pic och mikroprocessorer

Får mig nästan att utbrista: Glöm isåfall C helt och hållet, till att börja med. Ta av silkesvantarna och dyk ner i dyngan istället. Först då, och endast då, kommer du få möjlighet att förstå vad det är du/ni/TS (vad tusan nu TS är för nåt) försöker att klura ut. Skrota C, börja om med assembler. Ta fram en drös LED:s, skriv assemblerkod som blinkar dem på alla möjliga och omöjliga sätt. Försök *förstå* vad som händer, och varför. Lär er binära och hexadecimala talsystemen. Inte i ryggmärgen, men iallafall kunna räkna med dem.

Det ni försöker göra just nu är att cykla Vätternrundan med mountainbike utan att först ha full koll över hur en trehjuling fungerar. Jag rekommenderar att ni sänker ribban till en mer realistisk nivå, annars kommer ni att - likt en annan forummedlem (ingen nämnd ingen glömd) - hålla på och trava runt i all evighet utan att komma nånvart.

Bara ett tips. Det ger dig/er större chans att lyckas om ni börjar om från en bättre ända.
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med microC - too many params

Inlägg av Muppis »

Jovisst, det hade väl varit bra att lära sig assembler, exempelkoden i databladet var i assembler vad jag såg. Sen kan nämnas att TS (trådskaparen) har lyckats koda BASIC i en C-kompilator! Han använde tydligen mikroC PRO For PIC :) Hur det går till vet jag inte, filändelsen på källkoden är c.

För att prata om ingenting så är mikroC PRO hemskt, klickar man någonstans i filen så är det som att den är full av mellanslag, textmarkören hamnar precis där man klickat och inte i slutet av raden! Hur kan man leva så?!? :)

Jag har inga problem att omvandla hex, det gör google så snällt åt en om man inte vill använda en vanlig kalkylator. Det var just förkortningen 0x0F och 0xF som jag funderade över, vem vet vad som kan hända om det trots allt inte var samma sak i mikroprocessorns lilla värld. Men nu vet jag.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46864
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med microC - too many params

Inlägg av TomasL »

Jag har inga problem att omvandla hex, det gör google så snällt åt en om man inte vill använda en vanlig kalkylator.
Men snälla nån, behöver du google/miniräknare för det, hem och gör läxan bums.
En förutsättning för att kunna koda är väl att man åtminstone kan omvandla DEX/BIN<>DEC för tal upp till 15 i huvudet.
Niklas-k
Inlägg: 354
Blev medlem: 10 mars 2004, 15:59:21
Ort: Katrineholm

Re: Problem med microC - too many params

Inlägg av Niklas-k »

Ja det är ju ingen nybörjarprocessor heller ni valt. Ni bör sätta in i t.ex configuration bits och förstå allt där samt kolla upp alla analoga funktioner om de kan vara på. Ta till t.ex PBADEN hur är den satt?
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med microC - too many params

Inlägg av Muppis »

Nu började mikroC krångla över fjärrskrivbord så Helldin får klara sig själv en stund. Jag lämnar honom åt sitt öde nu, vi får se vad som händer med detta projekt. Tack för hjälpen allihop.

Niklas-k: Jag hittade mycket om USB i den processorn, det verkar ställa till med en hel del. Det har säkert besvarats tusentals gånger här, men vilken pic är en lämplig och modern för nybörjare? Jag har funderat länge på om man skulle försöka sig på elektronik som hobby.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46864
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med microC - too many params

Inlägg av TomasL »

Nån ur 18F serien, en bra processor är 18F452 och dess efterföljare 18F4520
Niklas-k
Inlägg: 354
Blev medlem: 10 mars 2004, 15:59:21
Ort: Katrineholm

Re: Problem med microC - too many params

Inlägg av Niklas-k »

Börja med att koppla upp displayen mot en 16F877A. Och misslyckas ni då så då vet fan inte vad ni skall göra :lol:

Annars så är 16F628A en bra nybörjarprocessor och kanske är svår att koppla upp mot en GLCD!
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46864
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med microC - too many params

Inlägg av TomasL »

Nja, tycker nog att 18F är bättre för nybörjare, enklare minneslayout, som inte bryts upp av olika saker.
452(4520) har dessutom tillräckligt med portar och dylikt, så man kan nästan göra vad som helst med den.
Skriv svar