[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: разумеется надо учитывать еще и времена выполнения процедур
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Сергей Тюнькин 20 февраля 2002 г. 11:12
В ответ на: да не выводит она всею строку с заданной периодичностью!!! отправлено nvn 20 февраля 2002 г. 08:39


{printf ("11111111\n");
выполняется за 1118 тактов, а таймер настроен на 256 тактов
а этот код

while (!TF1) {
printf ("11111111\n");
TF1 = 0;

собственно равносилен

delay(n);
printf ("11111111\n");

и если хочется использовать Т1 то

//функция вывода через UART
char putchar (char c)
{
do
Init_WDT();
while(TF1);

//TR1 = 0; /* TR1: timer 1 stop */
TH1 = N_H;
TL1 = N_L;
TF1 = 0;
//TR1 = 1; /* TR1: timer 1 run */

do
Init_WDT();
while(!TI);
S0BUF=c;
return(c);}
}//end char putchar (char c)

а вызов printf делать так

//////////////////////////
TF1=1;
printf ("11111111\n");
TR1=0;
//////////////////////////


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru