diden 0 8 ноября, 2010 Опубликовано 8 ноября, 2010 (изменено) · Жалоба как реализовать сие?просто пока из обвязки только пару светодиодов и пару кнопок, попробывал мигать, выходит только одновременно с определенной задержкой или по очереди, как сделать чтобы мигали одновременно но с разной скоростью(пока что постоянной)? Chip type : ATmega8515 Program type : Application Clock frequency : 8,000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 128 *****************************************************/ #include <mega8515.h> #include <delay.h> // Declare your global variables here int main(void) { DDRC.0=1; DDRC.1=1; while (1) { // Place your code here PORTC.0=0; PORTC.1=1; delay_ms(200); PORTC.0=1; PORTC.1=0; delay_ms(200); }; return 0; } это мигание двух светодиодов по очереди Изменено 8 ноября, 2010 пользователем xxxdarksxx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 8 ноября, 2010 Опубликовано 8 ноября, 2010 (изменено) · Жалоба Заведите таймер на милисекундные прерывания. В основном цикле опрашивайте флаг. Если он установлен то манипулируйте с таймерами для каждого светодиода. Если сложно сделать прерывания от ТС просто ставте задержку на 1 мС в основном цикле и и опять же ведите для каждого светодиода свой таймер милисекунд. volatile unsigned char msk_flag; //флаг устанавливается в прерывании от ТС unsigned int led_1_timer, led_2_timer; //таймеры для каждого светодиода if(msk_flag) { msk_flag = 0; if(led_1_timer>0) led_1_timer--; else { led_1_timer = 1000; inv_led(LED_1); } if(led_2_timer>0) led_2_timer--; else { led_2_timer = 417; inv_led(LED_2); } } Без прерываний #include <mega8515.h> #include <delay.h> // Declare your global variables here #define LED_1_TIMEOUT 1000 #defien LED_2_TIMEOUT 417 #define LED_1_MSK (1<<0) //PC0 #defien LED_2_MSK (1<<1) //PC1 int main(void) { DDRC = LED_1_MSK|LED_2_MSK; //настройка порта на вывод unsigned int led_1_timer = LED_1_TIMEOUT, led_2_timer = LED_2_TIMEOUT; //таймеры для каждого светодиода while (1) { delay_ms(1); if(led_1_timer>0) led_1_timer--; else { led_1_timer = LED_1_TIMEOUT; PORTC ^= LED_1_MSK; //инверсия пина } if(led_2_timer>0) led_2_timer--; else { led_2_timer = LED_2_TIMEOUT; PORTC ^= LED_2_MSK; //инверсия пина } } Изменено 8 ноября, 2010 пользователем mempfis_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diden 0 8 ноября, 2010 Опубликовано 8 ноября, 2010 · Жалоба спасибо,немножко не понятно,не подскажите что почитать по этой теме и без долгих теоретических отступлений,больше практических примеров? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tazik 0 9 ноября, 2010 Опубликовано 9 ноября, 2010 · Жалоба спасибо,немножко не понятно,не подскажите что почитать по этой теме и без долгих теоретических отступлений,больше практических примеров? пример Вам уже привели. а если почитать, то вот ___________________.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diden 0 9 ноября, 2010 Опубликовано 9 ноября, 2010 · Жалоба пример Вам уже привели. а если почитать, то вот ___________________.rar спасибо, это то что мне нужно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diden 0 9 ноября, 2010 Опубликовано 9 ноября, 2010 · Жалоба еще такой вопрос,когда подключаю несколько светодиодов они горят менее ярко чем когда один или два, тоесть есть какой то предел тока? что нужно делать чтобы этого не было? использовать внешний источник тока? как правильно подключать светодиоды и кнопки к контроллеру?спасибо) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DTF 0 10 ноября, 2010 Опубликовано 10 ноября, 2010 · Жалоба еще такой вопрос,когда подключаю несколько светодиодов они горят менее ярко чем когда один или два, тоесть есть какой то предел тока? что нужно делать чтобы этого не было? использовать внешний источник тока? как правильно подключать светодиоды и кнопки к контроллеру?спасибо) Конечно, есть ограничения по току, они указаны в DataSheet. Читайте от начала и до конца: http://easyelectronics.ru/podklyuchenie-mi...era-likbez.html . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diden 0 10 ноября, 2010 Опубликовано 10 ноября, 2010 · Жалоба Конечно, есть ограничения по току, они указаны в DataSheet. Читайте от начала и до конца: http://easyelectronics.ru/podklyuchenie-mi...era-likbez.html . огромное спасибо, нашел ответы на многие вопросы, ладно пока ушел изучать теорию) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yurmala 0 1 марта, 2011 Опубликовано 1 марта, 2011 · Жалоба пример Вам уже привели. а если почитать, то вот ___________________.rar спасибо, добавил себе в библиоткеу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Marto 0 1 марта, 2011 Опубликовано 1 марта, 2011 · Жалоба еще такой вопрос,когда подключаю несколько светодиодов они горят менее ярко чем когда один или два, тоесть есть какой то предел тока? что нужно делать чтобы этого не было? использовать внешний источник тока? как правильно подключать светодиоды и кнопки к контроллеру?спасибо) чтобы не сдохла линия порта контроллера, светодиоды следует подключать через транзисторный ключ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться