Problem med programkod 16F688 voltmätare

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
kempa
Inlägg: 26
Blev medlem: 28 mars 2011, 17:54:20
Ort: Osby

Problem med programkod 16F688 voltmätare

Inlägg av kempa »

Är helt nybörjare vad det gäller programering av microprocessorer.
Jag hittade en sida med schema samt program till en voltmätare
som styrs av en PIC16F688 men jag får inte det att fungera.
http://www.electronics-lab.com/projects ... index.html

Koden är följande:

Kod: Markera allt

/*
  Digital Voltmeter based on PIC16F688
  Rajendra Bhatt, Oct 12, 2010
*/
 
// LCD module connections
sbit LCD_RS at RC4_bit;
sbit LCD_EN at RC5_bit;
sbit LCD_D4 at RC0_bit;
sbit LCD_D5 at RC1_bit;
sbit LCD_D6 at RC2_bit;
sbit LCD_D7 at RC3_bit;
sbit LCD_RS_Direction at TRISC4_bit;
sbit LCD_EN_Direction at TRISC5_bit;
sbit LCD_D4_Direction at TRISC0_bit;
sbit LCD_D5_Direction at TRISC1_bit;
sbit LCD_D6_Direction at TRISC2_bit;
sbit LCD_D7_Direction at TRISC3_bit;
// End LCD module connections
 
char Message1[] = "DVM Project";
unsigned int ADC_Value, DisplayVolt;
char *volt = "00.0";
 
void main() {
  ANSEL = 0b00000100; // RA2/AN2 is analog input
  ADCON0 = 0b00001000; // Analog channel select @ AN2
  ADCON1 = 0x00;
  CMCON0 = 0x07 ; // Disbale comparators
  TRISC = 0b00000000; // PORTC All Outputs
  TRISA = 0b00001100; // PORTA All Outputs, Except RA3 and RA2
  Lcd_Init();        // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);             // CLEAR display
  Lcd_Cmd(_LCD_CURSOR_OFF);        // Cursor off
  Lcd_Out(1,1,Message1);
  Lcd_Chr(2,10,'V');
 
do {
 
   ADC_Value = ADC_Read(2);
   DisplayVolt = ADC_Value * 2;
   volt[0] = DisplayVolt/1000 + 48;
   volt[1] = (DisplayVolt/100)%10 + 48;
   volt[3] = (DisplayVolt/10)%10 + 48;
   Lcd_Out(2,5,volt);
   delay_ms(100);
  } while(1);
 
 }

Som sagt jag kan inte något om detta men jag håller på att försöka lära mig att
programera för att kunna göra egna program.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med programkod 16F688 voltmätare

Inlägg av sodjan »

Det saknas i princip det mesta här för att kunna hjälpa till.
Verktyg/miljö/kompilatorer ? Felsymptom ?
"får inte det att fungera" säger inte ett smack.
kempa
Inlägg: 26
Blev medlem: 28 mars 2011, 17:54:20
Ort: Osby

Re: Problem med programkod 16F688 voltmätare

Inlägg av kempa »

Jag la in programmet på en 16F688 i hex format.
Kopplade ihop allt efter schemat på ett kopplingsdäck men
det kommer inte upp något på displayen. Det enda som
sker är att skärmen tänds
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med programkod 16F688 voltmätare

Inlägg av sodjan »

OK. Jag tänker inte dra varande uppgift ur dig.
Återkom när du kan beskriva vad du gör seriöst.
T.ex:

> Jag la in programmet....

Hur då och med vadå ?

> i hex format.

Hur då "i hex format" ?
Har du kompoilerat själv eller har du hittat en färdig ?

> Kopplade ihop allt efter schemat på ett kopplingsdäck

Felkopplat kanske ? (Vanligaste felet rent generellt)

> Det enda som sker är att skärmen tänds

Med "tänds", menar du att bakgrundsbelysningen tänds ?
Hur ser det för övrigt på skrämen ? Någonting alls ?
Hur är kontrastpinnen kopplad? Som i schemet på länken ?
Och i så fall, blir det någon skillnad när du vrider potten ?
Användarvisningsbild
Icecap
Inlägg: 26613
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Problem med programkod 16F688 voltmätare

Inlägg av Icecap »

Då du påstår dig vara total nybörjare (fastän 15 inlägg i forumet) bör du veta att du måste ge så mycket information du kan!
* Displayen visar inget - men tänds? Är du osäker kan ett kort förklara mycket mer än du tror.
* Vet du att programmet faktisk fungerar och kör? Det är ganska vanligt att lägga till en LED och låta den blinka så att man ser att programmet faktisk kör.
* Vid programmeringsproblem ska du alltid ange vilken kompiler du använder, utvecklingsmiljö osv.
* Du använder LCD_Init(). Initierar den LCD-modulen till 8 eller 4-bit kommunikation?
* Du använder LCD_Out(), använder den rutin 8 eller 4-bit kommunikation?
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med programkod 16F688 voltmätare

Inlägg av sodjan »

Icecap, jag tror inte att det finns någon anledning att ifrågasätta själva
koden, den kommer ju direkt från en projektsida och fungerar sannolikt
förutsatt att allt annat är som det ska.

Dock så saknar både projektsidan och inläggen här helt information om hur CONFIG är att,
och eftersom schemat verkar använda INTOSC och det inte är default (d.v.s med clearad
CONFIG) så tror jag inte att det funegrar alls utan att specifikt sätta rätt CONFIG för
oscillatorvalet "INTOSCIO".
JustNeed
Inlägg: 799
Blev medlem: 7 november 2007, 22:07:01
Ort: 08

Re: Problem med programkod 16F688 voltmätare

Inlägg av JustNeed »

Om du vill lära dig programmera mikroprocessorer, så börja enklare.
Som det är nu så vet du inte om felet ligger i koden, displayen, mikroprocessorn, programmeringen eller dina kopplingar.
För oss som inte ens ser dina kopplingar och din utrustning är det än mindre möjligt att säga vad som är fel.

En bra början som är lätt att felsöka är att blinka en lysdiod. Det lär finnas tusen exempel på nätet och det är grymt mycket lättare att felsöka. Det är det första man brukar göra när man börjar med en ny processor. Sen när man vet att den kör program över huvud taget kan man gå vidare.

Ps. bara för att displayen kallas HD44780 betyder det inte att den har samma pinout
kempa
Inlägg: 26
Blev medlem: 28 mars 2011, 17:54:20
Ort: Osby

Re: Problem med programkod 16F688 voltmätare

Inlägg av kempa »

sodjan skrev:OK. Jag tänker inte dra varande uppgift ur dig.
Återkom när du kan beskriva vad du gör seriöst.
T.ex:

> Jag la in programmet....

Hur då och med vadå ?

Jag har en K150 programerare (sånt billigt mög men ska beställa en picit2 från elfa idag)

> i hex format.

Hur då "i hex format" ?
Har du kompoilerat själv eller har du hittat en färdig ?

Jag hittade ett program som omvandlade asm till hex.

> Kopplade ihop allt efter schemat på ett kopplingsdäck

Felkopplat kanske ? (Vanligaste felet rent generellt)

Jag har dubbelkollat samt plockat väck allt & monterat det på nytt.

> Det enda som sker är att skärmen tänds

Med "tänds", menar du att bakgrundsbelysningen tänds ?
Hur ser det för övrigt på skrämen ? Någonting alls ?
Hur är kontrastpinnen kopplad? Som i schemet på länken ?
Och i så fall, blir det någon skillnad när du vrider potten ?

Jo, bakgrundsbelysningen tänds & om jag vrider på potten så kommer det upp fyrkanter
på översta raden på displayen.

Får ursäkta mitt sena svar men hårddisken havererade på den stationära datorn
inne i hobbyrummet igår kväll :(
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med programkod 16F688 voltmätare

Inlägg av sodjan »

> Jag hittade ett program som omvandlade asm till hex.

Vilket "program" ? (Är det hemligt?)
Och varför asm till hex ? Koden var ju i C ?

> Jag har dubbelkollat samt plockat väck allt & monterat det på nytt.

Det går att göra samma fel två gånger i rad... :-)

> Jo, bakgrundsbelysningen tänds & om jag vrider på potten så kommer det
> upp fyrkanter på översta raden på displayen.

Bra ! När fyrkanterna syns så är kontrasten rätt. Men displayen har inte
fått några kommandon. Den ser ut så där efter spänningstillslag.

Nu behöver du bara svara/kommatera resten av frågorna också.
Speciellt CONFIG inställningarna. Hur har du gjort dom och hur är de satta.
kempa
Inlägg: 26
Blev medlem: 28 mars 2011, 17:54:20
Ort: Osby

Re: Problem med programkod 16F688 voltmätare

Inlägg av kempa »

Skrevfel. var stressad på lunchen det skulle vara "C" & inte "asm" :oops:
Användarvisningsbild
Icecap
Inlägg: 26613
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Problem med programkod 16F688 voltmätare

Inlägg av Icecap »

OK, fyrkanterna i översta raden är ett säkert tecken på att displayen inte initieras korrekt! Kontrasten ska stå så att de syns ganska tydligt till att börja med.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med programkod 16F688 voltmätare

Inlägg av sodjan »

OK, jag noterar att du skiter i frågorna du får.
Då lär du inte få några svar heller.
Användarvisningsbild
Andy
Inlägg: 5893
Blev medlem: 26 september 2004, 18:24:52
Ort: Södern

Re: Problem med programkod 16F688 voltmätare

Inlägg av Andy »

kempa skrev:Skrevfel. var stressad på lunchen det skulle vara "C" & inte "asm" :oops:
Låt dig inte skrämmas av frågorna utan svara på dem i stället så det går att hjälpa dig på ett bra sätt.
T ex. när Sodjan frågade om "kontrasten" som är ett mycket vanligt fel blev det inget svar, börja där så vi får koll på att det överhuvudtaget är möjligt att se om PIC'en gör något.
kempa
Inlägg: 26
Blev medlem: 28 mars 2011, 17:54:20
Ort: Osby

Re: Problem med programkod 16F688 voltmätare

Inlägg av kempa »

Har inte varit här inne på ett tag pga. en del saker som har hänt här hemma :(

Jag har läst en hel del ang. programmering som jag hittat på nätet nu idag.
Men jag lyckas inte komma på hur jag ska skriva CONFIG.

Som sagt jag är helt nybörjare vad det gäller microprocessorer. Har bara
hållt på med analog elektronik förr. Tänkte de att kan jag bara få denna koden
att funka så kan jag experimentera & kanske få den att även mäta ampere eller något annat.

Har beställt denna https://www.elfa.se/elfa3~se_sv/elfa/in ... 4-18&toc=0 samt lite
annat smått å gott från Elfa. Trodde att de skulle kommit igår men de kommer nog på måndag.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med programkod 16F688 voltmätare

Inlägg av sodjan »

> Men jag lyckas inte komma på hur jag ska skriva CONFIG.

Det beror på vilket verktyg (kompilator eller liknande) som du använder.
Och det framgår alltid av det specifika verktygets dokumentation.
Nornalt finns det ett sätt att ange det direkt i koden, ofta med en "pragma"
om det är C som gäller.

Jag noterar att du fortfarande inte har svarat på :

> > Jag hittade ett program som omvandlade asm till hex.
> Vilket "program" ? (Är det hemligt?)

Utan det går det inte att säga mer exakt om hur man gör. Du
får helt enkelt RTFM själv.

Slutligen, jag har läst mailet som jag fick direkt, och jag har full
förståelse för om ditt fokus ligger lite åt ett annat håll just nu...
Skriv svar