ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 37
Зарегистрирован: Сб дек 22, 2007 17:13:24

Сообщение Dock »

кто может подсказать по воопросу int0, всю ночь просидел, так и не смог понять как это сделать.
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 173
Зарегистрирован: Чт мар 20, 2008 20:33:43

Сообщение delay »

Я вам привел готовую программу. Только выход там PORTB0. Можно сделать любой. Подключите туда свои светодиоды, прошейте файл ogni.hex из папки EXE.
Только нужно подробнее знать ваши условия. Сигнал включения присутствует постоянно или это импульс на которкое время. В данной программе учитывается, что он присутствует на все время свечения(хотя не понятно зачем тогда нужен МК). Если это импульс и каждый следующий импульс включает - выключает светодиоды, то программку нужно изменить. По сути МК будет работать триггером.
Или вы уже написали программу для управления другими светодиодами и вам осталось добавить в нее управление этими двумя, которые вы хотите осуществить через INT0? Тогда я вам не помощник. Асм не знаю. Здесь есть немало спецов по асму.
Контактная информация:
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 37
Зарегистрирован: Сб дек 22, 2007 17:13:24

Сообщение Dock »

сигнал с приёмника поступает постоянно..
прошивка написана уже на всё, кроме этого прерывания и проверена на работоспособность.
посмотрел я то что вы дали но Си пока не знаю..
даже изменить выход на pb1 не смог.. просто не понимаю этот язык.
спасибо за помощь, буду ждать умельцев asm
Контактная информация:
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 37
Зарегистрирован: Сб дек 22, 2007 17:13:24

Сообщение Dock »

delay писал(а): В данной программе учитывается, что он присутствует на все время свечения(хотя не понятно зачем тогда нужен МК)..
от приёмника на схему подаётся +, -, сигнал. т.е. сигнал 1 или 0.
если переключатель в передатчике в верхнем положении это 1 на примнике (именно на это мканале) в нижнем соотетственно 0.
т.е. int0 должен включать или выключать светодиод по сигналу 1 и 0.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 173
Зарегистрирован: Чт мар 20, 2008 20:33:43

Сообщение delay »

Так поставьте транзисторный ключ со светодиодами прямо с этого выхода приемника. В чем проблема то? Зачем вам это в МК запускать?
Контактная информация:
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 37
Зарегистрирован: Сб дек 22, 2007 17:13:24

Сообщение Dock »

тогда и нет смысла изучать МК. проще поставить транзистор и пустит питание постянное с одной ножки МК. пр 0 будет 0 при 1 будет 1.. хоть это и простойший вариант то не для этого я покупал МК.
Контактная информация:
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 37
Зарегистрирован: Сб дек 22, 2007 17:13:24

Сообщение Dock »

неужели нет спецов кто пишет на ASM? хм мда....
Контактная информация:
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

Dock писал(а):неужели нет спецов кто пишет на ASM? хм мда....
Да тут спец и не нужен, достаточно знаний основ. Вот мой вариант :)
Вложения
code.txt
(2.74 КБ) 506 скачиваний
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Вс авг 10, 2008 00:41:08

Сообщение poff »

Доброго времени суток. Никгда не доводилось испльзовать все регистры РОН в 2313, просто было не нужно. Но вот в очередном проекте понадобилось 30 регистров РОН. Программирую в асме.
Вот перечень который я обозначил:

.def temp =R16
.def temp1 =R17
.def temp2 =R18
.def temp3 =R19
.def temp4 =R20
.def temp5 =R21
.def temp6 =R22
.def temp7 =R23
.def temp8 =R24
.def temp9 =R25
.def temp10 =R26
.def temp11 =R27
.def temp12 =R28
.def temp13 =R29
.def temp14 =R30
.def temp15 =R31
.def temp16 =R0
.def temp17 =R1
.def temp18 =R2
.def temp19 =R3
.def temp20 =R4
.def temp21 =R5
.def temp22 =R6
.def temp23 =R7
.def temp24 =R8
.def temp25 =R9
.def temp26 =R10
.def temp27 =R11
.def temp28 =R12
.def temp29 =R13
.def temp30 =R14
.def temp31 =R15

Компилятор утверждает, что регистры свыше Temp15 - INVALID.
В чем проблема?
Заранее благодарен...
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн июн 09, 2008 23:40:31

Сообщение lag1 »

Помогите старому чайнику. (МК начал заниматься уже "на старости лет") :cry: . Надо исключить прерывания от сторожевого таймера. Достаточно ли для этого только проследить, чтобы небыло галочки возле фьюза WDTON, или надо еще что-то записывать в регистр WDTCR. Спасибо.
Друг Кота
Аватара пользователя
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

lag1 писал(а):...Надо исключить прерывания от сторожевого таймера.
Просто не ставьте галку у фьюза WDTON. Этого вполне достаточно. Эту галку лучше вообще никогда не ставить, т.к. если понадобится, то его можно легко включить программно и в нужный момент. (и выключить тоже. Но это чуть сложнее). А если установлен фьюз, то Watchdog таймер включается сразу.
Открыл глаза
Аватара пользователя
Сообщения: 53
Зарегистрирован: Вт янв 15, 2008 21:18:36
Откуда: МО г.Фрязино-Щёлково

Сообщение tembl4 »

Здрасте :) приведите мне пожалуйсто код простейшего сикундомера на асме для at90s2313 (если не трудно) :))
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн июн 09, 2008 23:40:31

Сообщение lag1 »

Здравствуйте. У меня еще один вопрос о прерываниях. В программе из обучалки советуют расставить в начале программы ссылки на все прерывания. Пример дан для AT90S2313. А может кто подсказать, как это будет выглядеть для ATTiny2313. И еще, если можно, несколько слов о том, как может повлиять уже на работу программы то, что если мы не будем в начале программы делать ссылки на все возможные прерывания, а пропишем только используемые в программе. Спасибо.
Открыл глаза
Аватара пользователя
Сообщения: 53
Зарегистрирован: Вт янв 15, 2008 21:18:36
Откуда: МО г.Фрязино-Щёлково

Сообщение tembl4 »

помоему их можно просто не ставить.. :? (если не будете их использовать..
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Это должна выйти бегущая точка. Но есть один момент, нужно что бы при зажигании 8 светодиода PC7, он оставался далее включенным. Но она не работает как нада. 8 светодиод включается и тухнет, а нада что бы продолжал светится.Помогите.
Схема подключения:
Изображение
Вложения
код.txt
(1.41 КБ) 527 скачиваний
Я не Сашок!!!
Контактная информация:
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

sachok писал(а):Это должна выйти бегущая точка. Но есть один момент, нужно что бы при зажигании 8 светодиода PC7, он оставался далее включенным. Но она не работает как нада. 8 светодиод включается и тухнет, а нада что бы продолжал светится.Помогите.

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

// остальное делается посредством прерываний
// по переполнению Таймера/Счетчика 1
while(PORTB != 0x7f);
замени эту строку на while(1) или for(;;).
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

замени эту строку на while(1) или for(;

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

while(1)
это на сколько я знаю - бесконечный цикл из которого мне нужно выйти. при использовании выдает warning.
Я не Сашок!!!
Контактная информация:
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

это на сколько я знаю - бесконечный цикл из которого мне нужно выйти.
А зачем выходить? что будет делать МК после выхода из этого цикла?
при использовании выдает warning.
for( ; ; ); вот так должно было быть, если бы значки автоматически не преобразовывались в смайлы. Это другой вариант while(1);
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Я начинающий поэтому может не все понимаю. С такой прошивкой светодиоды засвечиваются по порядку от 1 по 8. 8 светится в протежении заданного времени и тухнет. А мне надо что бы он продолжал светится, тоесть программа остановилась. Вот проект в proteus:
Вложения
Новая папка.rar
(12.44 КБ) 364 скачивания
Последний раз редактировалось sachok Пт авг 15, 2008 12:01:08, всего редактировалось 1 раз.
Я не Сашок!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

В проекте НЕ ПРОШИВКИ ни исходника !

Чтоб прога остановилась в нужном месте, добавьте там:

1. выключить перерывания
2. сделать бесконечный цикл (с командой WDT внутри - если сторожевой таймер включен.)

Пример со светодиодами есть в задаче 1 курса по AVR - моя дом. страничка - там подробно все расписано.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Ответить

Вернуться в «AVR»