Код: Выделить всё
unsigned char cos[]={254,254,254,254,253,253,253,252,252,251,250,249,248,248,247,245,244,243,242,240,
239,237,236,234,232,231,229,227,225,223,221,219,217,214,212,210,207,205,202,200,
197,195,192,189,186,184,181,178,175,172,169,166,163,160,157,154,151,148,145,142,
139,136,132,129,126,123,120,117,114,111,107,104,101,98,95,92,89,86,83,80,77,75,72,
69,66,63,61,58,56,53,50,48,46,43,41,39,36,34,32,30,28,26,24,22,21,19,17,16,14,13,12,
10,9,8,7,6,5,4,3,3,2,2,1,1,0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,5,6,7,8,9,10,12,13,14,16,17,19,
21,22,24,26,28,30,32,34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,80,83,86,
89,92,95,98,101,105,108,111,114,117,120,123,126,129,133,136,139,142,145,148,151,
154,157,160,163,166,169,172,175,178,181,184,186,189,192,195,197,200,202,205,207,
210,212,214,217,219,221,223,225,227,229,231,233,234,236,237,239,240,242,243,244,
245,247,248,249,249,250,251,252,252,253,253,253,254,254,254,254};
unsigned long FAZA=2000000; //параметр частоты
int main(void)
{
unsigned long ACCU=0; //акумулятор
DDRD=0xFF;
for (;;)
{
PORTD = cos[ACCU>>24];//выгружаем из массива в порт по старшему байту аккумулятора
ACCU=ACCU+FAZA ;
}
}
В си еще не сильно шарю, но этот код работает. В отладчике посчитайте количество шагов в for.
п.с .Удалите массив в своем предыдущем сообщении,ужасно портит размер странички форума.