wymstom1777
|
|
1 | |
Светодиод и кнопка17.05.2014, 16:40. Показов 3304. Ответов 9
Метки нет (Все метки)
Привет всем! Помогите пожалуйста! Как написать программу на С под avr, чтобы когда на кнопку нажимая светодиод загорался, еще раз нажимая он погас ?
|
17.05.2014, 16:40 | |
Ответы с готовыми решениями:
9
светодиод, кнопка и msp430 Кнопка и светодиод MPLAB PIC18F4525 [КР580] Кнопка нажата - «горит» 1-й светодиод, кнопка отпущена - «горит» 2-й светодиод В схеме есть кнопка и светодиод. Начальное состояние – кнопка не горит HP Pavilion DV6000: не горит светодиод питания, кнопка включения не реагирует |
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 483
|
|
17.05.2014, 16:54 | 2 |
Слишком общий вопрос. Значит вы хотите, чтобы написали за вас. Но тогда тема неподходящая (нужно в коммерческий подфорум).
Если хотите сами, но напишите в чем конкретные затруднения. Чтения ножки контроллера? Запись в ножку контроллера? Если не знаете, что такое С и что такое контроллер, тоже не беда. Для решения вашей задачи человечество изобрело кнопки с фиксацией, а также триггеры.
0
|
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 641
|
|
17.05.2014, 19:01 | 3 |
наверно так:
- пока кнопка не нажата крутимся в цикле1 - кнопку нажали- читаем состояние выходного пина, меняем на противоположное - пока кнопка нажата крутимся в цикле2, как только будет отпущена- переход на начало. если это единственная задача, которую будет исполнять контроллер, то, наверное, лучше, что
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
|
|
17.05.2014, 21:12 | 4 |
Мдя-я-а-а... Книжки почитать, на самом сайте есть уроки по AVR. Вот что вы тратите время участников, а самое главное ваше же личное время? Задаете глупые вопросы. Глупые, потому сразу пошли на форум. И не потрудились хоть что-то почитать, хоть что-то сделать.
Самый простой пример: Код
//======================================================================== #define F_CPU 16000000 #include <stdyo.h> #include <avr/io.h> #include <util/delay.h> //======================================================================== // где-то в каком-то файле, скажем // knopi.h: #define KNOPI_PIN PINA #define KNOPI_PORT PORTA #define KNOPA_1 PA0 // где-то в каком-то файле, скажем // tids.h: #define LED_DDR DDRB #define LED_PORT PORTB #define LED_1 PB0 void main (void) { KNOPI_PIN = 0xFF; // Для отладки !!!!!!!!!!!!!!! LED_DDR |= (1<<LED_1); while (1) { LED_PORT = KNOPI_PIN; } } Код
//======================================================================== #define F_CPU 16000000 #include <stdyo.h> #include <avr/io.h> #include <util/delay.h> //======================================================================== // где-то в каком-то файле, скажем // knopi.h: #define KNOPI_PIN PINA #define KNOPI_PORT PORTA #define KNOPA_1 PA0 // где-то в каком-то файле, скажем // tids.h: #define LED_DDR DDRB #define LED_PORT PORTB #define LED_1 PB0 void main (void) { KNOPI_PIN = 0xFF; // Для отладки !!!!!!!!!!!!!!! LED_DDR |= (1<<LED_1); while (1) { while (KNOPI_PIN & (1<<KNOPA_1)) { } _delay_ms (1); // _delay_ms (100); while (KNOPI_PIN & (1<<KNOPA_1)) { } LED_PORT |= (1<<LED_1); while (!(KNOPI_PIN & (1<<KNOPA_1))) { } _delay_ms (1); while (!(KNOPI_PIN & (1<<KNOPA_1))) { } LED_PORT &= (~(1<<LED_1)); } } Есть другие варианты. Но там без автоматного программирования нечего делать. Так что вперед! И не беспокоить нас, пока не почитаете материалы по конечным автоматам и автоматному программированию
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
|
|
17.05.2014, 22:28 | 6 |
:) Я очень надеюсь, что автоматное программирование надолго отвлечет от нас таких вот халявщиков. Может он еще не потерян для нас? Так что пусть штудирует... А варианты недолго было накидать, в дизасме быстро глянул, устраивает и ладно. Должно работать, а нет, пусть товарищ сам разбирается, мне некогда азы разжевывать. Пусть в книжки заглянет.
0
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 483
|
|
17.05.2014, 22:56 | 7 |
Товарисч и слова сказать не успел, а вы его уже опустили до плинтуса. И что вы так привязались к этим конечным автоматам? Последний вопрос риторический (даже с учетом того, что у вас слишком мало времени, чтобы не дать на него развернутый ответ).
Напомнило ещё кое-что.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
|
|
17.05.2014, 23:10 | 8 |
Я никого не опускал ниже плинтуса. Даже мысли и намерения такого не было. Лично я не задавал вопросы, как мне написать программу, "чтобы нажать кнопу и зажегся светодиод". Лез на форумы когда были конкретные проблемы, и не такие вот простенькие. Ну или когда припирает, времени на разбирательства нет. Есть еще один момент. Я тогда писал на асме, и мне все говорили перейти на си. Точно так же, давали совет, изучить КА, как минимум. Ну и так далее, проблемы, связанные с профессиональным подходом к программированию. Проблемы новичков - нет нормального систематизированного подхода в учебных материалах. Да не оскорбится на меня DY HOTT: взять iosyitistromyss.ru. Да есть учебные материалы и неплохие. Но! Разжеваны некоторые азы и сразу бац, типа RTOS-ка. А где должное внимание автоматному программированию? А где должное внимание взаимодействию программных модулей?
Да что говорить... Так как, зря я сказал про конечные автоматы? Пусть товарищ параллельно с изучением азов штудирует КА.
0
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
18.05.2014, 02:43 | 9 |
Про автоматное программирование там же ващет :)
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
|
|
18.05.2014, 03:09 | 10 |
Сообщение от DY HOTT
0
|
18.05.2014, 03:09 | |
18.05.2014, 03:09 | |
Помогаю со студенческими работами здесь
10
Светодиод Светодиод LI-4 Загорится ли светодиод? ИК светодиод и фототранзистор Arduino и светодиод Выключается светодиод Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |