roboforum.ru

Технический форум по робототехнике.

Написать программу мигания светодиода. Помогите чайнику

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Написать программу мигания светодиода. Помогите чайнику

Сообщение Daniil94 » 27 окт 2011, 18:45

Помогите написать программу для atmega16 которая когда на 7 ножке порта D единица, записывала бы 1 в первую ножку порта B.
Написал на CVavr
Код: Выделить всёРазвернуть
 #define F_CPU 16000000UL  // 16 MHz
   #include <io.h>
   #include <delay.h>
   
   int main(void)             
   { 
  DDRD = 0x00; 

          PORTD = 0x00; 

          DDRB = 0xFF; 

          PORTB = 0x00;
while (1) {           
                    PORTB.0=0;
                    if (PIND.7==1) {PORTB.0=1;} else{PORTB.0=0;};
            }
}
Но сведодиод после 1 нажатия всё время мигает.
P.S. На самом деле я хочу что бы свеодиод мигал в так out'у TSOP'а.

Самоделки Сделай сам
__________________________________________________________
Аватара пользователя
Daniil94
 
Сообщения: 75
Зарегистрирован: 01 июл 2011, 13:05
Откуда: Белгород
Skype: dan9m@ya.ru
прог. языки: php JS C++ ну и русский конешн

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение HarryStar » 27 окт 2011, 19:00

А вы извращенец :)
Зачем усложнять программу?
Код: Выделить всёРазвернуть
#define F_CPU 16000000UL  // 16 MHz
#include <io.h>

int main(void)             

    DDRD = 0x00; PORTD = 0x00; 
    DDRB = 0xFF; PORTB = 0x00;

    while (1) PORTB.0=PIND.7;
}
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение Daniil94 » 28 окт 2011, 10:07

пока ждал ответа сам уже додумался.Но проблема осталась. К portd.7 у меня подключен out tsopa, а к B.0 лампочка. В итоге когда после прошивки, лампочка постоянно горит а когда пульт направляю на tsop то едва заметно начинает "дребезжать" мигать очень часто.
!
1) чем отличаются функции PORT и PIN
2)Как сделать что бы лампочка горела только при нажатии кнопки на пульте.
3) Пример функции на СИ Которая просто распознавала кнопку с пульта. (Без всяких записей в uart usart)
Спасибо.
P.S. Вообще я хочу роботом управлять с пульта.
Самоделки Сделай сам
__________________________________________________________
Аватара пользователя
Daniil94
 
Сообщения: 75
Зарегистрирован: 01 июл 2011, 13:05
Откуда: Белгород
Skype: dan9m@ya.ru
прог. языки: php JS C++ ну и русский конешн

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение HarryStar » 28 окт 2011, 10:21

Пока ждали ответа? :) 15 минут нынче много? :)

1) PORT - это выход порта, PIN это вход
2) Сделать можно программно. Ловить с д.7 импульсы и зажигать лампочку если они есть и тушить, если их нет.
3) Ну подумайте немного сами-то. Задача несложная.
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение SkyStorm » 28 окт 2011, 10:39

У TSOP инверсный выход. Когда на входе пусто то лог еденица, когда сигнал то ноль.
Второе в марке последние 2 цыфры это частота, для твоего это 36 кГц.
Третье пульты бывают разных систем например RC5, так вот в RC5 передача нажатия кнопки идет последовательностью 12 бит.

Рекомендую - узнать какой у тебя пульт и найти библиотеку декодирования.
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2687
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение Myp » 28 окт 2011, 13:23

Daniil94 писал(а):лампочка постоянно горит а когда пульт направляю на tsop то едва заметно начинает "дребезжать" мигать очень часто.

поздравляю, программа работает правильно :)
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение Daniil94 » 28 окт 2011, 15:08

SkyStorm - спасибо, теперь я понял. У TSOP инверсный выход. (fuse тоже инверсный...скоро все будут инверсными)
HarryStar - ну за 15 мин я сам додумался. Задача конечно несложная, а вот посложнее пример подпрограммы которая распознала бы что нажата кнопка 2, если её "код" известен.
Код: Выделить всёРазвернуть
PORTB.0=~PIND.7;
- :Yahoo!:
Самоделки Сделай сам
__________________________________________________________
Аватара пользователя
Daniil94
 
Сообщения: 75
Зарегистрирован: 01 июл 2011, 13:05
Откуда: Белгород
Skype: dan9m@ya.ru
прог. языки: php JS C++ ну и русский конешн

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение Dmitry__ » 28 окт 2011, 15:31

HarryStar
вот так программы и воруют, а потом выдают за свои :D
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение Daniil94 » 28 окт 2011, 15:56

подскажите как каждые 1,778 мс проверять состояние PIND.7
и если 1,778X2 мс PIND.7=1 то записать в errom оставшиеся изменения за 1,778Х12
Самоделки Сделай сам
__________________________________________________________
Аватара пользователя
Daniil94
 
Сообщения: 75
Зарегистрирован: 01 июл 2011, 13:05
Откуда: Белгород
Skype: dan9m@ya.ru
прог. языки: php JS C++ ну и русский конешн

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение Dmitry__ » 28 окт 2011, 16:24

Значит смотри :)
На форуме 6314 пользователей
1 вопрос: минус 1 пользователь, HarryStar отстрелялся.
Осталось 6313 пользователей ответов, минус ты сам, т.е. 6312 ответов
Правда не все тут программисты :shock:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение SkyStorm » 28 окт 2011, 16:37

Daniil94 писал(а):подскажите как каждые 1,778 мс проверять состояние PIND.7
и если 1,778X2 мс PIND.7=1 то записать в errom оставшиеся изменения за 1,778Х12

А зачем такое извращение? повесь прерывание и обработай приход данных в нем.
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2687
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение Daniil94 » 28 окт 2011, 17:39

SkyStorm писал(а):
Daniil94 писал(а):подскажите как каждые 1,778 мс проверять состояние PIND.7
и если 1,778X2 мс PIND.7=1 то записать в errom оставшиеся изменения за 1,778Х12

А зачем такое извращение? повесь прерывание и обработай приход данных в нем.

Можешь привести пример декодирования rc5 на си. Искал в интернете, но не чего не понятно и не на cvavr.
Просто хочется роботом с пульта от телика упралять
Самоделки Сделай сам
__________________________________________________________
Аватара пользователя
Daniil94
 
Сообщения: 75
Зарегистрирован: 01 июл 2011, 13:05
Откуда: Белгород
Skype: dan9m@ya.ru
прог. языки: php JS C++ ну и русский конешн

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение dccharacter » 28 окт 2011, 17:43

let me google that for you: cvavr rc5 infrared
http://www.avrfreaks.net/index.php?name ... 09&start=0

Добавлено спустя 1 минуту 44 секунды:
О, классный комент на АВРФрикс:
I guess I shouldn't be, but I'm LOL
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение Daniil94 » 28 окт 2011, 18:17

я не чего не понял.
Самоделки Сделай сам
__________________________________________________________
Аватара пользователя
Daniil94
 
Сообщения: 75
Зарегистрирован: 01 июл 2011, 13:05
Откуда: Белгород
Skype: dan9m@ya.ru
прог. языки: php JS C++ ну и русский конешн

Re: Написать программу мигания светодиода. Помогите чайнику

Сообщение dccharacter » 28 окт 2011, 18:34

Мож вот так понятнее:
Вложения
stabilizator_na_mototsikl.gif
stabilizator_na_mototsikl.gif (6.56 КиБ) Просмотров: 5883
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron