Hallo iedereen,
Ik gebruik MPLAB met de C18 compiler om een PIC184431 te programmeren.
Ik gebruik in mijn code arrays, maar ik krijg steeds een syntax error op de lijn waar ik mijn arrays voor het eerst declareer...
Ik heb al vanalles geprobeerd en gezocht, maar niets helpt.
Dit is een stukje uit de code geknipt:
---------------------------------------------------------
CCPR1L = 0x56; //19286 = 0100 1011 0101 0110
//Variables************************************************
--> int const ServoTime_High[90]={0x46, 0x46, 0x46, 0x46, 0x46, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, hierna nog een hoop hex getallen...};
int const ServoTime_Low[89]...
---------------------------------------------------------
Waar de pijl staat is de lijn waarop volgens de compiler de error staat.
Kan iemand raad geven? Alvast bedankt.
const voor int zetten in plaats van erachter.
const int ServoTime_High[90]={0x46, 0x46, .....[Bericht gewijzigd door PE9SMS op (40%)]
lukt niet 
Dit is de schrijfwijze die k gevonden heb op het internet...
[Bericht gewijzigd door Fredjelektr op (73%)]
Marcel
AVR C tutorial http://expand.xs4all.nl/avr
Het zou eens te maken kunnen hebben met de dubbele initialisatie van de array. Je geeft namelijk zowel de grootte op als de daadwerkelijke inhoud. Volgens mij behoor je de grootte van de array weg te laten als je deze direct initialiseert. Dus
const int ServoTime_High[]={0x46, 0x46, .....Ik heb al op verschillende manieren geprobeerd:
const int ServoTime_High[90];
const int ServoTime_High[]={0x46, 0x46, .....
--------------------------------------------------
const int ServoTime_High[90];
ServoTime_High[]={0x46, 0x46, .....
-------------------------------------------------
const int ServoTime_High[90]={0x46, 0x46, .....
maar niets lijkt te helpen
Neen, hij staat in de main functie, maar natuurlijk buiten de while(1) loop.
edit:
Dit heb ik gevonden in een Microchip pdf:
--------------------------------------------------
char x[] = "abc";
int i[] = { 1, 2, 3, 4, 5};
void main (void)
{
while (1);
;
}
--------------------------------------------------
Dus ik heb de declaratie buiten de main functie gezet.
Nu gaat de compiler er voorbij !! 
Nu blijft hij wel hangen op de eerstvolgende lijn 
[Bericht gewijzigd door Fredjelektr op (72%)]
kluyze
The only thing 2 engineers will agree upon, is that the 3rd one is an idiot. - Shakespeare was a mathematician : root(4*b^2) = 2b or -2b
Als je de grootte van de array meegeeft dan moet je de elementen een voor een ingeven.
int x[2];
x[0] = 0x02;
x[1] = 0x03;
Als je het in 1 lijn wilt ga je niet de grootte moeten meegeven.
int x[] = {0x02, 0x03};
Dus geen grootte opgeven, ook niet in de lijn ervoor. Die zie ik trouwens ook niet in die pdf van microchip dus waarom je dat gedaan hebt weet ik ook niet, toch niet geheel overgenomen.
De eerst volgende lijn is trouwens weer een array zoals ik kan zien, dus dat gaat dan dezelfde fout zijn.
in principe zou het moeten werken trouwens, maar ik heb het ook al meegemaakt dat de compiler er over valt, heel raar soms. Is het trouwens in windows?
[Bericht gewijzigd door kluyze op (13%)]