AD-omvandlings problem med pic18

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43250
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Vad gör doADC() ?
Användarvisningsbild
rävekorre
Inlägg: 37
Blev medlem: 4 augusti 2005, 14:40:11
Ort: Östergötland

Inlägg av rävekorre »

doADC() = ADC()

skrev fel
sodjan
EF Sponsor
Inlägg: 43250
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Fungerar det nu då ?
Användarvisningsbild
rävekorre
Inlägg: 37
Blev medlem: 4 augusti 2005, 14:40:11
Ort: Östergötland

Inlägg av rävekorre »

nepp, precis samma fel som med C18 funktionen. ;)
Användarvisningsbild
rävekorre
Inlägg: 37
Blev medlem: 4 augusti 2005, 14:40:11
Ort: Östergötland

Inlägg av rävekorre »

Hur gick det då?

Jo, jag hade centrerat mig på att det var koden som var felaktig och därför fokuserat min felsökning på den. När jag till slut övertygade mig om att den var korrekt (gav till slut upp och körde asm) hårdtestade jag kretsen. Av (med facit i hand) någon dum anledning brukar jag försöka undvika att mäta på kretsens ben när det finns risk för att kortsluta matningsspänning. I detta fall var det fel, åh så fel (jag kan höra Bosse bildoktorns mantra fel fel fel). Anslutningen till AVdd var skadad och ADCn hade då ingen riktig referens.

Mina fortsatta experiment med C18 har lyckats väl och det börjar kännas riktigt bra nu, men på vissa punkter vill jag hävda att den bryter mot C89.

Här är ett exempel på något jag inte riktigt har koll på (men så har jag inte grävt igenom manualen utan gick istället runt):

#include <stdio.h>
#include <string.h>

char str[] = 1234

void main(void)
{
printf(strlen(str) = %d strlen(1234) = %d, strlen(str), strlen(1234));
}

Output:
strlen(str) = 4 strlen(1234) = 0


Jag tackar för hjälpen, en del oklarheter har rätts ut. Kanske kan jag i framtiden hjälpa en stackars vilsen själ med C18, likt mig själv. ;)

God Jul till alla!!

EDIT: typo, ändrade C99 -> C89
Senast redigerad av rävekorre 20 december 2005, 22:43:38, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43250
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> men på vissa punkter vill jag hävda att den bryter mot C99...

Kan du peka på stället där det står att den skulle följa C99 ?
Om inte, så vet jag inte riktigt vad din poäng är...

Det enda jag har hittat är "ANSI '89 compatibility", vad nu det betyder.

Generellt sätt betyder dessa standards ganska lite i en mikrokontroller
miljö.
Användarvisningsbild
rävekorre
Inlägg: 37
Blev medlem: 4 augusti 2005, 14:40:11
Ort: Östergötland

Inlägg av rävekorre »

C89 menar jag, C99 är den "nyare" standarden.

Bool och complex är väl två exempel på nymodigheter i C99 som kanske saknas i C89?

"Code is written using standard ANSI C notation." Det tolkar jag com C89 annars borde det refererats till C99. Jag stötte på lite problem med variabelkonverteringar. Nu finns det lite info om hur man kan göra så att C18 följer C89 striktare.

Nu nämnde jag bara det som en nackdel jag personligen upplevt, annars har jag mycket goda erfarenheter av C18, jag rekommenderar det starkt.
Skriv svar