Avatar billede rinoh Nybegynder
29. august 2006 - 19:35 Der er 6 kommentarer og
1 løsning

A/D converter

jeg skal int min a/d converter og læse voltmålinger ud på et lcd display. men min compiler finder fejl i int af a/d converter. nogen der kan fortælle mig fejlen

kode:
#include <LPC21xx.h>       
#include <stdarg.h>           

#include <lpc21xx.h>                    /* LPC2200 definitions            */
#include <stdio.h>                      /* standard I/O .h-file            */

#define VREF  3

unsigned int val;


{
/* Setup the A/D converter */
IODIR1 = 0x00FF0000;                    /* P1.16..23 defined as Outputs      */
VPBDIV = 0x02;                          /*Set the Pclk to 30 Mhz              */
ADCR  = 0x00210601;                  /* Setup A/D: 10-bit AIN0 @ 3MHz      */


while(1) {

ADCR  |= 0x01000000;                  /* Start A/D Conversion              */
while ((ADDR & 0x80000000) == 0);       /*Wait for the conversion to complete */
val = ((ADDR >> 6) & 0x03FF);          /*Extract the A/D result             */

  printf ("Digital Value %4u = %01u.%04u Volts\r",
        (unsigned) val,
        (unsigned) (val * VREF) >> 10,                          /* Output Integer Portion */
        (unsigned) ((val * VREF * 10000UL) >> 10UL) % 10000);  /* Output Decimal Portion */

  }

}


resten af min kode virker
Avatar billede rinoh Nybegynder
29. august 2006 - 19:54 #1
her er mine fejl

AD.C(17): error C25: syntax error near ')'
AD.C(18): error C25: syntax error near 'volatile'
AD.C(18): error C25: syntax error near ')'
Avatar billede bertelbrander Novice
29. august 2006 - 23:12 #2
Det lidt svært at se hvor det går galt, linie 17 er linien efter:
ADCR  = 0x00210601;                  /* Setup A/D: 10-bit AIN0 @ 3MHz      */

Men jeg kan ikke se noget galt med den linie, og jeg forsår heller ikke at der skulle være en fejl i linie 18 som også er en tom linie.

Mangler der noget i den kode du har postet?
Så vidt jeg kan se burde koden være pakket ind i en funktion?
Avatar billede rinoh Nybegynder
30. august 2006 - 08:12 #3
der mangler ikke noget i koden den er postet direkte fra min compiler. det skulle nemlig være pakket ind som en funktion så jeg forstår heller ikke hvorfor jeg får fejl
Avatar billede rinoh Nybegynder
30. august 2006 - 11:05 #4
kan det være min main funktion da jeg også har en main.c i min kode
Avatar billede dkfire Nybegynder
31. august 2006 - 17:19 #5
Der er to ting
Du mangler en funktion, nemlig main();
Start med at skrive main() der hvor du vil have dit program til at starte.
Anden ting, lav et linieskift efter "while ((ADDR & 0x80000000) == 0);" eller vil den kører næste linie mens den konvertere.
Avatar billede rinoh Nybegynder
01. september 2006 - 15:08 #6
det hjalp hvordan kan jeg give dig point
Avatar billede dkfire Nybegynder
01. september 2006 - 15:43 #7
Ved at jeg giver dig et svar :)
Andre problemer, så skrive du bare. Sidder til dagligt og arbejder med ADconvertere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester