AVR:Пример c:Моргаем светодиодом
<source lang="c">
//=========================================================
// ATmega16 моргает светодиодом на порту PС0 21pin
// используем библиотеки
- include <inttypes.h> // не верю не нужны здесь типы
- include <avr> // а вот это пожалуй да
- include <avr> // не верю какие int
- 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>
Автор: Efremov Artem