Шпак Ю А - Программирование На Языке C Для Avr И Pic Микроконтроллеров (2006).djvu вот. что нашел в книжке ... это мне поможет?
#include <avx/io.h> #include <avr/dalay.h> #include <stdio.h>
//Отображаемый номер //Счетчик текущего светоиндикатора в режиме ох:
char n; //Отображаемый номер char c; //Счетчик текущего светоиндикатора в режиме ожидания
int main (void) { UBRR = 25; //Скорость обмена через UART - 9600 бод UCR = 0x18; /*Устанавливаем разряды ТХЕN и RХЕN для активизации UART в режиме ввода/вывода через выводы 0 и 1 порта D. Разряд СНR9=0 - передача 8 бит данные */ DDFA = 0x00; //Все выводы порта А - входы PORTA - OxFF; //Выводы порта А - нагруженные DDKB = OxFF; //Все выводы порта В - выходы while (1) //Бееконечный цикл { c = 1; //Начинаем с первого светоиндикатора whie (PINA == 0xFF) //До тех лор, пока не нажата кнопка... {
if (c == 0) c = 1; //Если "точка" пробежала всю линейку //индикаторов, то начинаем опять с первого светодиода PORTB = ~c; //Загорается "бегущая точка" _delay_loop_2(100); //Короткая задержка n++; //Увеличиваем число, предназначенное к выводу c = c << 1; //Сдвигаем "бегущую точку" влево } printf ("%d", n); //Если нажата кнопка, выводим число через PORTB = ~n; //UART и отображаем его с помощью светодиодов _delay_loop_2 (1000); //Длинная задержка PORTB = 0xFF; //Гасим светодиоды } }
|