Jag håller på att skriva ett enkelt program på en Pic 16f88 med Hi-Tech C och Mplab som ska skicka data till en 433.92MHz sändare, som sedan tas emot av några fjärrstyrda el-uttag. Typ Nexa, fast inte just Nexa. Jag stöter på problem när jag deklarerar den datasträngen som skall skickas som en char-array enligt;
Kod: Markera allt
char ch1_a_1[] = {1,1,1,1,1,0,1,1,1,1,0,1};
char ch1_a_0[] = {1,1,1,1,1,0,1,1,1,1,1,0};
char ch1_b_1[] = {1,1,1,1,1,1,0,1,1,1,0,1};
char ch1_b_0[] = {1,1,1,1,1,1,0,1,1,1,1,0};
char ch1_c_1[] = {1,1,1,1,1,1,1,0,1,1,0,1};
char ch1_c_0[] = {1,1,1,1,1,1,1,0,1,1,1,0};
char ch1_d_1[] = {1,1,1,1,1,1,1,1,0,1,0,1};
char ch1_d_0[] = {1,1,1,1,1,1,1,1,0,1,1,0};
Kod: Markera allt
void send_cmd(char cmd[]){
char i,j;
for(j=0;j<=4;j++){
for(i=0;i<=11;i++){
nolla();
switch(cmd[i]){
case 0:
nolla();
break;
case 1:
etta();
break;
default:
break;
}
}
nolla();
__delay_ms(10);
}
}
Försöker jag deklarera det med hela 8st variabler så får jag kompileringsfel:
Kod: Markera allt
Error [1253] double.c; 55. could not find space (110 bytes) for auto/param block
Även fast jag har "massor" med utrymme kvar på pic:en.
Varför muppar sig Hi-Tech fast det finns minst 50% kvar att nyttja på pic:en?
Jag kommer förmodligen att skriva om detta med några for-loopar nu när jag ser ett mönster i hur signalen skickas, men jag fattar ändå inte varför detta händer.