AVR:Пример c:Моргаем светодиодом — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Новая: Категория:Nix-06 <source lang="c"> //========================================================= // ATmega16 моргает светодиодом на порту PС0 21pin ...)
 
м
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
[[Категория:Nix-06]]
 
[[Категория:Nix-06]]
 +
[[Категория:c]]
  
 
<source lang="c">
 
<source lang="c">
Строка 30: Строка 31:
 
     DDRC |= _BV(PC0);              // Установить линию 0 порта С в "1" т.е. на вывод
 
     DDRC |= _BV(PC0);              // Установить линию 0 порта С в "1" т.е. на вывод
 
     while(1) {                      // Бесконечный цикл обязательный кошмар для микропроцессоров
 
     while(1) {                      // Бесконечный цикл обязательный кошмар для микропроцессоров
           PORTC &= ~_BV(PC0);   // Сбросить бит PС0 в "0" = 0V, светодиод включен
+
           PORTC &= ~_BV(PC0);       // Сбросить бит PС0 в "0" = 0V, светодиод включен
 
           delay_ms(500);            // Ждем 0.5 сек.
 
           delay_ms(500);            // Ждем 0.5 сек.
 
           PORTC |= _BV(PC0);        // Установить бит PС0 в "1" = 5V, светодиод выключен
 
           PORTC |= _BV(PC0);        // Установить бит PС0 в "1" = 5V, светодиод выключен
Строка 38: Строка 39:
 
//=======================================================
 
//=======================================================
 
</source>
 
</source>
 +
 +
[[Изображение:avr_primer_led_1.jpg]]
  
 
{{autor|Efremov Artem}}
 
{{autor|Efremov Artem}}

Текущая версия на 23:29, 2 сентября 2007


<source lang="c"> //========================================================= // ATmega16 моргает светодиодом на порту PС0 21pin // используем библиотеки

  1. include <inttypes.h> // не верю не нужны здесь типы
  2. include <avr> // а вот это пожалуй да
  3. include <avr> // не верю какие int
  4. include <avr> // не верю

// Подпрограмма задержки AVR //на Intel за такое ставят двойки и выгоняют-- // Минимальная задержка с кварцем 4MHz, равна 1 ms // При пошаговой отладке эту функцию можно оключить void delay_ms(unsigned short ms){

  unsigned short outer1, outer2;    // init он и в африке Init
  outer1 = 200;                     // init он и в африке Init
  while (outer1) {                  // зациклиться кошмар :O
         outer2 = 1000;             // init он и в африке Init
         while (outer2) {           // еще зациклиться кошмар на кошмар :O
                while ( ms ) ms--;  // еще зациклиться кошмар на кошмар на кошмар:O
                outer2--;           // расcасыватся по единичке
         }
         outer1--;                  // расcасыватся по единичке
  }

}

// Основная программа =================================== void main(void){

    DDRC |= _BV(PC0);               // Установить линию 0 порта С в "1" т.е. на вывод
    while(1) {                      // Бесконечный цикл обязательный кошмар для микропроцессоров
          PORTC &= ~_BV(PC0);       // Сбросить бит PС0 в "0" = 0V, светодиод включен
          delay_ms(500);            // Ждем 0.5 сек.
          PORTC |= _BV(PC0);        // Установить бит PС0 в "1" = 5V, светодиод выключен
          delay_ms(500);            // Ждем 0.5 сек.
    }

} //======================================================= </source>

Avr primer led 1.jpg

Автор: Efremov Artem