Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт июн 05, 2012 11:58:42
to a_skr
благодарю
благодарю
Здесь можно немножко помяукать :)
https://radiokot.ru:443/forum/
Код: Выделить всё
/**/
void METRIKKOD(void) //
{
Long Rj = 0, Ri = 0, Rg = 0; temp = 0;
temp = '2';//getchar(); // Первый символ
if(temp == '.'){goto m;}
else{ Rg = temp; Rg = (Rg << 24);}//
if(temp == ' '){goto m1;} // Конец значения
temp = '3';//getchar(); // Второй
if(temp == '.'){goto m;}
else{Rj |=Rg; Rg = temp; Rg = (Rg << 16); Rj |=Rg;} //
if(temp == ' '){goto m1;} // Конец значения
temp ='0'; //getchar(); // Третий
if(temp == '.'){temp = 0; Rg |= Rj; goto m;}
else{Rj |=Rg; Rg = temp; Rg = (Rg << 8); Rj |=Rg;}
if(temp == ' '){temp = 0; Rg |= Rj; goto m1;} // Конец значения
temp ='1'; //getchar(); // Четвертый
if(temp == '.'){temp = 0; Rg |= Rj; goto m;}
else{ Rg = temp; Rg |= Rj;}
if(temp == ' '){temp = 0; Rg |= Rj; goto m1;} // Конец значения
temp = '.';//getchar(); //
if(temp == '.'){temp = 0; Rg |= Rj; goto m;}else{}
if(temp == ' '){temp = 0; Rg |= Rj; goto m1;}else{} // Конец значения
Rj = 0; temp = 0;
goto m1;
m:
Rj = 0;
temp ='2'; //getchar(); // Первый символ
if(temp == ' '){goto m1;} // Конец значения
else{ Ri = temp; Ri = (Ri << 24);}
temp = '5';//getchar(); // Второй
if(temp == ' '){goto m1;} // Конец значения
else{Rj |=Ri; Ri = temp; Ri = (Ri << 16); Rj |=Ri;}
temp = ' ';//getchar(); // Третий
if(temp == ' '){temp = 0; Ri |= Rj; goto m1;} // Конец значения
else{ Rj |=Ri; Ri = temp; Ri = (Ri << 8); Rj |=Ri;}
temp = '2';//getchar(); // Четвертый
if(temp == ' '){temp = 0; Ri |= Rj; goto m1;} // Конец значения
else{ Ri = temp; Ri |= Rj;}
Rj = 0;
temp = 0;
m1:
} Код: Выделить всё
void Freq(word Freq)// Задатчик частоты для таймера Т0
{
if(Freq <= 450)// Частота
{TCNTx = 0x101 - (((flo)1/Freq)*(Freq_MC/1024)); SLCx = SLC1024;} // Меньше или равно 450 Гц. мин. 29 Гц, для кварца 7372800 Гц и делителя 1024.
else{TCNTx = 0x101 - (((flo)1/Freq)*(Freq_MC/64)); SLCx = SLC64;} // Больше 450 Гц. макс. 57600 Гц, для кварца 7372800 Гц и делителя 64.
TCNT0 = TCNTx;
TCCR0 = SLCx;
} Подробней пож что такое форматтед, а то невехал?
sprintf
<cstdio>
int sprintf ( char * str, const char * format, ... );
Write formatted data to string
Код: Выделить всё
/* sprintf example */
#include <stdio.h>
int main ()
{
char buffer [50];
int n, a=5, b=3;
n=sprintf (buffer, "%d delit %d is %f", a, b, (double)a/(double)b);//тут ответ - результат с плавающей точкой должен получиться
for (c = 0 ; c <= n ; c++) {
putchar (buffer[c]);
}
return 0;
}
Код: Выделить всё
temp -= 0x30; Rg = temp; Rg = Rg*1000;Код: Выделить всё
Rj |=Rg; temp -= 0x30; Rg = temp; Rg = Rg*100;Rg +=Rj; Rj = Rg;Другой это типа обратный результат?signum писал(а):кстати я придумал другой вариант, проверю напишу измененный код.
Массив для чего заранее указывать?signum писал(а):По поводу массива, полагаю размерность указывать необходимо обязательно и за ранние, переменный размер не получиться ? это по другому вопросу.
Да вроде можно но CV ругается, другой это иной, по другому реализованный, думаю мой вариант будет менее ресурсоемким.vitalik_1984 писал(а):Другой это типа обратный результат?signum писал(а):кстати я придумал другой вариант, проверю напишу измененный код.Массив для чего заранее указывать?signum писал(а):По поводу массива, полагаю размерность указывать необходимо обязательно и за ранние, переменный размер не получиться ? это по другому вопросу.
Вообще си вроде можно заранее не объявлять размер.
почему ?Goodefine писал(а):Это не операция.
Код: Выделить всё
anod_min_l;