Многоканальный выключатель на микроконтроллере

Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Ответить
Открыл глаза
Сообщения: 71
Зарегистрирован: Чт фев 04, 2010 07:35:28

Сообщение lexsoft »

И снова приветствую вас уважаемые коты. Забралась мне в голову мысль сделать на микроконтроллере attiny2313 многоканальный выключатель. Что мы имеем,микроконтроллер с порядка 16-ю свободными ногами,8 из которых будут входами,остальные 8 выходы.На входы вешаем нормально разомкнутые кнопки,8 штук,оставшиеся концы которых соединяем с землёй. Устройство должно работать следующим образом:При подаче питания на всех выходах 0. При нажатии кнопки,должна появляться 1 на соответствующем кнопке выходе.При последующем нажатии на выходе 0,и так далее.Все каналы должны работать независимо друг от друга.Необходима задержка включения секунды в 2,что бы дребезг контактов не напрягал.Тактировать контроллер наверное лучше от внутреннего генератора,уж коли он там есть. Судя по функционалу устройства,программа подозреваю нужна не сложная..Но проблема в том что я в программировании полный ноль.Пытался я что то понять в программировании скитаясь по сайтам с соответствующей тематикой,накачал книг-ну не понимаю я там нифига,что аж до нервоза)..Эти непонятные термины.. А управлять микроконтроллером до ужаса хочется. Не мог бы кто нибудь набросать код,так сказать для затравки? С меня пиво)
Реклама
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

я могу написать прошиивку... а заместь пива сбросите его стоимость мне на кошелек :)
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

Наверно 8 D-триггеров с взаимным сбросом.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

ну автор говорит
lexsoft писал(а):управлять микроконтроллером до ужаса хочется
:)
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

dr.doc писал(а):с взаимным сбросом.
Точнее - с общим сбросом по питанию и задержкой на 2 секунды..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Реклама
Открыл глаза
Сообщения: 71
Зарегистрирован: Чт фев 04, 2010 07:35:28

Сообщение lexsoft »

BoRtO,деловой подход. Только я качества в таком случае затребую)) Говори за сколько рублей прошивку можешь сваять?
Реклама
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

lexsoft писал(а):качества
ок!
прошу в лс! :)
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Да хватит уж на новичках навариваться. Так слабо помочь? Объяснить, что к чему... Ему же не готовая программа нужна, а научиться.
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

ploop писал(а):Так слабо помочь?
Жить как то надо :cry: деньги из неба с падают :cry:
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград

Сообщение Dmitry Dubrovenko »

ploop писал(а):Ему же не готовая программа нужна, а научиться.
А я понял, совсем наоборот... :roll:
А задача, действительно как-раз для обучения.
ICQ нет, и, в ближайшее время, не будет.
Контактная информация:
Открыл глаза
Сообщения: 71
Зарегистрирован: Чт фев 04, 2010 07:35:28

Сообщение lexsoft »

Научиться очень хочу,хотя бы что то простейшее для понимания.. Многообещающие учебники "на доступном языке" напрочь нудоступны моему пониманию) Вот бы приятеля который за бутылкой водки разьяснил бы что к чему))
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград

Сообщение Dmitry Dubrovenko »

Ну, если знаете, что такое триггер, и понимаете, что такое "логическое И", особых трудностей быть не должно.
Я бы рекомендовал, для начала ПИКи, но коль уж Вы хотите АВРы, то тут, на сайте, есть вполне приличный учебник.
ICQ нет, и, в ближайшее время, не будет.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Вот еще отличный курс: http://easyelectronics.ru/category/avr-uchebnyj-kurs
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Код: Выделить всё

//Date    : 18.01.2012
//Chip type           : ATtiny2313
//Clock frequency     : 8,000000 MHz

#include <tiny2313.h>

unsigned char old_knopki, knopki;


// Timer 0 overflow interrupt service routine
//Прерывание каждые 32 мсек
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
//антидребезг
old_knopki= knopki;//запоминаем старое значение кнопок
knopki= PINB;//опрашиваем кнопки
//если нажата кнопка, то инвертируем соответствующий порт посредством Исключающего ИЛИ
if((old_knopki & 0x01) && !(knopki & 0x01)) PORTD^= 0x01;
if((old_knopki & 0x02) && !(knopki & 0x02)) PORTD^= 0x02;
if((old_knopki & 0x04) && !(knopki & 0x04)) PORTD^= 0x04;
if((old_knopki & 0x08) && !(knopki & 0x08)) PORTD^= 0x08;
if((old_knopki & 0x10) && !(knopki & 0x10)) PORTD^= 0x10;
if((old_knopki & 0x20) && !(knopki & 0x20)) PORTD^= 0x20;
if((old_knopki & 0x40) && !(knopki & 0x40)) PORTD^= 0x40;
if((old_knopki & 0x80) && !(knopki & 0x80)) PORTA^= 0x01;
}



void main(void)
{
#include "init.c"//инициализация

while (1);//вечно здесь
}
Остальные файлы да и этот тоже в приложении.
PS. Прости BoRtO, порешил, что как-то некрасиво за столь простое пиво брать. Мне бы водки.
Вложения
TEMP.RAR
(1.68 КБ) 240 скачиваний
Docendo discimus
Контактная информация:
Открыл глаза
Сообщения: 71
Зарегистрирован: Чт фев 04, 2010 07:35:28

Сообщение lexsoft »

Спасибо дружище! Будешь в Самаре,заезжай,поставлю тебе пузырь)
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Запомнил. :beer:
Docendo discimus
Контактная информация:
Открыл глаза
Сообщения: 71
Зарегистрирован: Чт фев 04, 2010 07:35:28

Сообщение lexsoft »

Вчера пытался в протеусе это дело погонять,так и не понял где там питалово на контроллер цеплять..
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Оно по умолчанию подано. Ваша задача залить прошивку.
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город

Сообщение Мастер Ломастер »

pyzhman писал(а):

Код: Выделить всё

//если нажата кнопка, то инвертируем соответствующий порт посредством Исключающего ИЛИ
if((old_knopki & 0x01) && !(knopki & 0x01)) PORTD^= 0x01;
if((old_knopki & 0x02) && !(knopki & 0x02)) PORTD^= 0x02;
if((old_knopki & 0x04) && !(knopki & 0x04)) PORTD^= 0x04;
if((old_knopki & 0x08) && !(knopki & 0x08)) PORTD^= 0x08;
if((old_knopki & 0x10) && !(knopki & 0x10)) PORTD^= 0x10;
if((old_knopki & 0x20) && !(knopki & 0x20)) PORTD^= 0x20;
if((old_knopki & 0x40) && !(knopki & 0x40)) PORTD^= 0x40;
if((old_knopki & 0x80) && !(knopki & 0x80)) PORTA^= 0x01;
я ошибаюсь или на самом деле вместо этого кода вот так было бы проще:

Код: Выделить всё

PORTD ^= old_knopki ^ knopki;
что-то голова не хочет думать :)))
битва с дураками проиграна, победители торжествуют. слава победителям!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Там еще PORTA есть. :) И - ну конечно же вы правы, можно было урезать до строчки. Тока хотелось, чтобы человек увидел что да как. :beer:
Docendo discimus
Контактная информация:
Ответить

Вернуться в «Умные мысли»