Зарегистрирован: Пн мар 23, 2009 16:20:56 Сообщений: 62 Откуда: From the Middle of Nowhere
Рейтинг сообщения:0
Привет всем!
У меня есть довольно скудный опыт программирования процессора MOTOROLA F240. Вот теперь надобно эти знания перенести на AT90S2313.
Задача впринципе проста: надо создать девайс, что то вроже бинарного счетчика с дисплеем. Считать буду от 1 до 9.
Ну, скажем вот так:
7 светодиодов - 7ми сегментный дисплей.
"CHAN +" "CHAN -" - этими кнопками происходит счет вверх и вниз.
"USER 1(2)" - пара джамперов, ограничивающая максимальное число. Например 5 или те-же 9.
"AUTO" (с фиксацией) - считать по кругу 1-2-3-...-9-1-2-3-... , индицируя по 2-3 сек каждый.
A[2..0] - бинарный выход. Выдает то же число, что на дисплее, но в двоичном коде.
Писать хочу на С.
Перерыв инет, стало понятно более или менее что делать, но все еще есть КУЧА вопросов.
1) свою прогу я пишу с бесконечным WHILE циклом в MAIN функции? То есть прога будет бежать вечно.
2) как же она будет запускаться? Автоматически, как только подается питание на МК, он сам запустит прогу? И соотв, обрываться при отключении питания? Это не вредит МК и проге в нем?
3) могу я написать код и выложить его сюда для оценки экспертов?
4) я не совсем понима как читать и писать в порты МК на Си. Можете пожалуйста дать примерчик?
примеры есть в примерах компиляторов. И в компиляторе CVAVR тоже есть папка с примерами - C:\CVAVR\examples
И в WinAVR папка с примерами - C:\WinAVR\doc\avr-libc\examples
Зарегистрирован: Пн мар 23, 2009 16:20:56 Сообщений: 62 Откуда: From the Middle of Nowhere
Рейтинг сообщения:0
Поставил значится CVAVR и ПРОТЕУС.
Пашет, все супер.
Начал изучать и писать прогу.
Есть пара вопросов! Спецы - выручайте!
По пред. схеме
1) Я не уверен что правильно назначил порты ввода-вывода.
Надо чтоб портД был весь только на вывод (пойдет на ЛЕДы), а порт А был на вывод с пинов 0 по 2, а остальные на ввод. Соотв. там надо сделать вроде как лог.1, которую кнопкой можно замкнуть на землю, тем самым сделав лог.0. Вот что я намутил.
DDRD = 0xFF; //(0b11111111)
DDRB = 0xE0; //(0b11100000)
Верно?
Теперь, если я хочу писать что в порт D целиком, то я могу делать это так:
PORTD = 0b01010101;
Верно? Cоотв. загорится часть ЛЕДов.
А если в первые пины порта B:
PORTB.0=1;
Это сделает мне лог.1 на одном из трех ВЫВОДОВ порта B. Так?
Его вводы я делаю подтянутой единицей:
PORTB.3=1;
PORTB.4=1;
PORTB.5=1;
PORTB.6=1;
PORTB.7=1;
Тогда, нажав кнопку, на выводе будет лог.0, котрый я смогу прочесть, например так:
if (PORTB.3 == 0) {делать чтото}
Я прав?
2) Надо ли резистор между ножками ввода порта А и кнопкой на землю?
3) Я не хочу использовать внешний кварц. Знаю, что все и без него может работать. Что для этого надо сделать? Надо как то врубить соотв. фьюз, но я что-то не догоняю как именно это сделать.....
Я понимаю, вопросы глупые, и тем не менее, я прошу вашей помощи.
Спасибо огромное!
Последний раз редактировалось -=MindHunteR=- Ср мар 25, 2009 10:54:53, всего редактировалось 1 раз.
Поставил значится CVAVR и ПРОТЕУС... Я понимаю, вопросы глупые, и тем не менее, я прошу вашей помощи. Спасибо огромное!
1) все верно.
2) Наверное, Вы имели ввиду порт B. Резистор не нужен, можно для помехозащищенности последовательно от контакта кнопки к порту поставить резистор в несколько десятков Ом, от порта на землю конденсатор - несколько нанофарад или меньше, но пока Вам этим не стоит заморачиваться.
3) если Вас устроит частота 1 МГц, то пока вообще не трогайте фьюзы (как я понимаю микроконтроллер у Вас в состоянии заводской поставки). С завода микроконтроллер настроен так, что тактируется частотой 1 МГц (внутренний RC генератор выставлен на 8 МГц, включен фьюз деления частоты генератора на 8 ).
Зарегистрирован: Пн мар 23, 2009 16:20:56 Сообщений: 62 Откуда: From the Middle of Nowhere
Рейтинг сообщения:0
smac писал(а):
3) если Вас устроит частота 1 МГц, то пока вообще не трогайте фьюзы (как я понимаю микроконтроллер у Вас в состоянии заводской поставки). С завода микроконтроллер настроен так, что тактируется частотой 1 МГц (внутренний RC генератор выставлен на 8 МГц, включен фьюз деления частоты генератора на 8 ).
а если хочется побыстрее? только кварц?
тупо втыкаю его к ножкам, пара кондеров на землю и все?
а на сколько мгц нужен кварц?
Зарегистрирован: Вс янв 07, 2007 01:45:48 Сообщений: 491 Откуда: Российская Федерация, будь она неладна...
Рейтинг сообщения:0
Aric писал(а):
Возможно ли питание схемы на Тини2313 импульсным блоком питания от сотового телефона? ЗЫ Блок 5,7V 800mA, поставлю после 78L05 например.
Да. Только про конденсаторы не забывайте.
_________________ Научить нельзя, можно научиться. Пифагор. Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Возможно ли питание схемы на Тини2313 импульсным блоком питания от сотового телефона?
Если в этой зарядке фильтрация паршивая, то питать таким ИП м/к не следует - он будет себя вести случайным образом, а может и вовсе загнуться. Нужно фильтровать.
Aric писал(а):
ЗЫ Блок 5,7V 800mA, поставлю после 78L05 например.
У них дропаут - 1,7 вольта, значит - минимальное на входе д.б. максимальное выходное, плюс дропаут, то есть, порядка семи вольт (5.2 + 1.7 = 6.9). Можно конечно не максимальное выходное брать, а именно то, которое у твоего экземпляра 78L05, но принципиально это положения не изменит.
Зарегистрирован: Вс янв 07, 2007 01:45:48 Сообщений: 491 Откуда: Российская Федерация, будь она неладна...
Рейтинг сообщения:0
Да всё работает отлично. Хорошо отфильтровать конденсаторами, и будет Вам счастье.
_________________ Научить нельзя, можно научиться. Пифагор. Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Работать-то оно работает, а вот, чтобы узнать - отлично ли, нужно измерить, что на входе у 78L05 и что на выходе - если она не регулирует нифига (например - на входе те самые 5.7, на выходе - 4.0), то проще её вообще исключить, погасив лишнее, если надо, кремниевым диодом.
Зарегистрирован: Вс янв 07, 2007 01:45:48 Сообщений: 491 Откуда: Российская Федерация, будь она неладна...
Рейтинг сообщения:0
У меня работает без проблем.
Повторюсь ещё раз, КОНДЕНСАТОРЫ на 99% решают проблемы. Вот без них точно работать не будет.
Другой вопрос, что у некоторых импульсников нет развязки с сетью, вот это может стать реальной проблемой.
_________________ Научить нельзя, можно научиться. Пифагор. Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Я не утверждаю обратного, просто, будет лучше, если автор вопроса будет исходить из своей ситуации - померяет напруги и либо заменит 7805 на что-то с небольшим DO, либо вовсе выкинет, поставив вместо нее подходящий диод.
Pooher писал(а):
Повторюсь ещё раз, КОНДЕНСАТОРЫ на 99% решают проблемы. Вот без них точно работать не будет.
Без сомнений, только нужно еще сказать, что электролит нужно зашунтировать керамикой нанофарад этак на сто, иначе нормальной фильтрации не будет.
Pooher писал(а):
Другой вопрос, что у некоторых импульсников нет развязки с сетью, вот это может стать реальной проблемой.
К зарядкам от сотовых это, IMHO, не относится (не дай бог, если есть исключения из этого правила!).
Зарегистрирован: Вс янв 07, 2007 01:45:48 Сообщений: 491 Откуда: Российская Федерация, будь она неладна...
Рейтинг сообщения:0
Yellow Tiger писал(а):
Без сомнений, только нужно еще сказать, что электролит нужно зашунтировать керамикой нанофарад этак на сто
Ага, ВЧ помехи никто не отменял.
Yellow Tiger писал(а):
К зарядкам от сотовых это, IMHO, не относится (не дай бог, если есть исключения из этого правила!)
Вот и остаётся только надеятся, что китайцы до этого ещё не дошли
_________________ Научить нельзя, можно научиться. Пифагор. Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
...насколько опасно использование ... программатора 5 проводков ... для LPT порта и вообще для компа?
Ну так, а в каких единицах мерять-то?
Если одним неосторожным движением отвертки можно спалить LPT-порт - это очень опасно для тебя лично? Вот и решай.
Можно замерить либо осцилом, либо через делитель частоты "на много" подать на звуковую карту, либо резистор конденсатор и диод - как детектор переменки применить и вольтметром мерить.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения