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

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

Сообщение Dock »

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

Сообщение delay »

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

Сообщение Dock »

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

Сообщение Dock »

delay писал(а): В данной программе учитывается, что он присутствует на все время свечения(хотя не понятно зачем тогда нужен МК)..


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

Сообщение delay »

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

Сообщение Dock »

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

Сообщение Dock »

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

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

Dock писал(а):неужели нет спецов кто пишет на ASM? хм мда....

Да тут спец и не нужен, достаточно знаний основ. Вот мой вариант :)
Вложения
code.txt
(2.74 КБ) 505 скачиваний
poff
Первый раз сказал Мяу!
Сообщения: 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.
В чем проблема?
Заранее благодарен...
lag1
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн июн 09, 2008 23:40:31

Сообщение lag1 »

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

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

lag1 писал(а):...Надо исключить прерывания от сторожевого таймера.

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

Сообщение tembl4 »

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

Снова о прерываниях

Сообщение lag1 »

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

Сообщение tembl4 »

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

Сообщение sachok »

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

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

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

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

// остальное делается посредством прерываний
// по переполнению Таймера/Счетчика 1
while(PORTB != 0x7f);

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

Сообщение sachok »

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

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

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

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

это на сколько я знаю - бесконечный цикл из которого мне нужно выйти.

А зачем выходить? что будет делать МК после выхода из этого цикла?
при использовании выдает warning.

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

Сообщение sachok »

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

Сообщение tych »

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

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

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

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

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