роботы
робототехника
микроконтроллеры
Главная
Как сделать робота
Новости
Спорт
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты  

Мигание светодиодом с помощью таймера

CodeLibrary.Timer История

Скрыть незначительные изменения - Показать разницу в разметке

02.04.2011 18:56 изменил Admin -
Добавлены строки 1-64:

(:title Мигание светодиодом с помощью таймера:)


/*******************************************************************
 Title:		Пример мигания светодиодом с помощью таймера
 Сopyright:	myROBOT, http://myrobot.ru
 Date:		апрель 2011
 Software:	AVR-GCC (WinAVR)
 Hardware:	ATmega8, 1 MHz

 Description:
 Пример мигания светодиодом с помощью 8-разрядного таймера.
 Светодиод подключается к выводу PB1.

*******************************************************************/

   #define F_CPU 1000000UL  // 1 MHz
   #include <avr/io.h>
   #include <util/delay.h>
   #include <avr/interrupt.h>


SIGNAL(SIG_OVERFLOW0)   // подпрограмма обработки прерывания по 
                        //  переполнению таймера
{
   TCNT0=0x00; // сбрасываем счетный регистр таймера/счетчика T0

   if (PINB & (1<<PINB1)) // переключаем светодиод на линии PB1
		PORTB &= ~_BV(PB1);
   else 
		PORTB |= _BV(PB1);
}



   int main(void)      // начало основой программы
   {

      DDRB = 0xff;   // все выводы порта B сконфигурировать как выходы
      PORTB = 0x00;  // установить "0" на всех линиях порта B


      TIMSK =0b00000001;  // записываем 1 в бит TOIE0 регистра TIMSK
                          // устанавливаем флаг разрешения прерывания
                          // по переполнению таймера/счетчика T0

      TCNT0=0x00;   // сбрасываем счетный регистр таймера/счетчика T0

      TCCR0=0b00000101;   // устанавливаем предделитель CK, 
                          // используя биты CS00, CS01, CS02


      sei(); // разрешаем прерывания;


        while (1) {}  // бесконечный цикл


   }   // закрывающая скобка основной программы

Мой робот Wiki

Открытое информационное пространство по робототехнике, электронике, программированию микроконтроллеров, в рамках которого любой участник может добавлять или редактировать материалы сайта.

  1. Проекты
  2. Статьи
  3. Библиотека кодов
  4. Компоненты
  5. Эксперименты
  6. Советы и хитрости