Страница 12 из 132

Добавлено: Пт авг 15, 2008 14:51:19
sachok
tych Спасибо за ответ но в нем мало чего понял.
1. выключить перерывания
это убрать вот этот участок программы??

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

 interrupt [TIM1_OVF] void timer1_overflow(void)
{
// снова инициализируем Таймер/Счетчик 1
TCNT1=0x10000-(xtal/1024/fmove);
// проверяем зажигание последнего светодиода
if(PORTB != 0x7F);
PORTB=(PORTB<<1)|1;  // переместим и включим светодиод
}
Что то я в вашем самоучителе заблудился и не нашол задачу 1 с примеров для светодиодов если можно то ссылку напишите.

Добавлено: Пт авг 15, 2008 15:14:35
nds
выключить прерыввания - ассемблерная команда cli
пример
cli ; Запретить прерывания
in r11, $16 ; Считать Порт B
sei ; Разрешить прерывания

Добавлено: Пт авг 15, 2008 16:52:55
sachok
Прерывания выключил.
Чтоб прога остановилась в нужном месте, добавьте там:
2. сделать бесконечный цикл (с командой WDT внутри - если сторожевой таймер включен.)
Как это сделать??? Бесконечный цикл это

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

while(1);
?

Добавлено: Пт авг 15, 2008 20:29:54
tych
sachok писал(а):Что то я в вашем самоучителе заблудился и не нашол задачу 1 с примеров для светодиодов .
А прямо в начале самомом написано: "Задачи-упражнения курса по AVR"

Добавлено: Сб авг 16, 2008 10:18:46
¤KOSTIK¤
Всем привет.Я только начинающий в деле с микроконтроллерами и хочу собрать первую схему на ATTiny2313. Прочитал весь ваш форум и перелопатил почти весь инет .Есть вопрос о внутрисхемном программировании ATTiny2313: я так понял эту систему программирования-собираешь полностью устройство на ATTiny2313, выводишь выводы для программирования-соответственно MOSI,MISO,SCK,RESET,GND. Затем подключаешь к ним программатор. Вот тут тоже вопрос к профессионалам:чем лучше прошивать-пятью проводками от LPT или лучше с буферной микросхемой 74HC244 от этого же LPT ? Дальше, я так понял, подаём питание на схему с ATTiny2313. А сколько нужно подавать: кто то пишет что столько, сколько нужно для питания микроконтроллера, кто то говорит сколько по схеме должно быть, а кто то говорит, что от внутрисхемного программирования у них сгорел порт LPT. (всё это вычитал на форумах по микроконтроллерам). Шиться хочу CodeVisionAVR C Compiler- как он в деле по прошивке этого микроконтроллера?Вот такая вот проблема.Заранее спасибо всем ответившим.

Добавлено: Сб авг 16, 2008 10:27:28
tych
¤KOSTIK¤ писал(а):Есть вопрос о внутрисхемном программировании ATTiny2313... CodeVisionAVR C Compiler- как он в деле по прошивке
"Всё о прошивании AVR" - стр. 7 краткого курса - моя домашняя страничка.
¤KOSTIK¤ писал(а):кто то пишет что столько, кто то говорит сколько, а кто то говорит
Правильно так как в даташите на МК написано. Я считаю что у меня в курсе тоже правильно написано - я проверял.

Добавлено: Сб авг 16, 2008 10:31:56
tych
sachok писал(а):tych Спасибо за ответ но в нем мало чего понял.
1. выключить перерывания
это убрать вот этот участок программы??

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

 interrupt [TIM1_OVF] void timer1_overflow(void)
{
// снова инициализируем Таймер/Счетчик 1
TCNT1=0x10000-(xtal/1024/fmove);
Это ОБРАБОТЧИК прерывания - сюда прога попадет когда оно случится.

А нужно запретить реакцию на событие прерывания.

Добавлено: Сб авг 16, 2008 10:55:38
¤KOSTIK¤
Спасибо за помощь, tych. Если ты проверял-сделаю как у тебя написано на домашней стрнаничке. Потом напишу о результате по твоему способу.[/quote]

Добавлено: Сб авг 16, 2008 11:32:23
sachok
Всем спасибо!!! Разобрался со своими светодиодами :)

Добавлено: Сб авг 16, 2008 18:05:38
poff
Господа, услыште меня. Почему компиляторы avrasm иtavrasm отказываются видеть регистры РОН в диапазоне R0-R15, а видят только регистры R16-R31,хотя в даташите на ATTINY2313 указано, что в наличии имеется 32 регистра РОН.

Заранее благодарен

Добавлено: Сб авг 16, 2008 18:46:38
tych
poff писал(а):Господа, услыште меня. Почему компиляторы avrasm иtavrasm отказываются видеть регистры РОН в диапазоне R0-R15, а видят только регистры R16-R31,хотя в даташите на ATTINY2313 указано, что в наличии имеется 32 регистра РОН.
В обучалку радикота загляни. Ну и в help ассемблеров тоже.

Добавлено: Вс авг 17, 2008 14:48:07
¤KOSTIK¤
Уважаемые,прошу вашей помощи. Программатором STK200 буду шить ATTiny2313. Объясните пожалуйста,куда подсоединять вывод LED к контроллеру?

Добавлено: Вс авг 17, 2008 16:06:30
tych
¤KOSTIK¤ писал(а):Уважаемые,прошу вашей помощи. Программатором STK200 буду шить ATTiny2313. Объясните пожалуйста,куда подсоединять вывод LED к контроллеру?
Не надо подключать.

Добавлено: Вс авг 17, 2008 16:14:51
¤KOSTIK¤
Благодарствую,tych.

Добавлено: Вс авг 17, 2008 21:58:59
sachok
Нужна помощ начинающему. Как инвертировать сигнали на выходах порта В. Исходник в вложении.

Добавлено: Пн авг 18, 2008 16:18:35
tych
sachok писал(а):Нужна помощ начинающему. Как инвертировать сигнали на выходах порта В. Исходник в вложении.
Можно так

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

PORTB=~( то что есть в исходнике );


А если там светодиоды, то переключить их на другой лог уровень ключения .

Добавлено: Вт авг 19, 2008 23:10:17
sachok
tych спасибо за ответ!
не знаю правильно ли Вы меня поняли но попробую разеснить что мне нужно. Сейчас программа работает нормально и останавливается на 5 бите порта В если он равен лог. 0. при такой настройке портов на выходе порта В появляются лог. 0 при прерываниях. таким образом светодиоды нужно соединять анодами вместе и через резистор на +5В, а катоды на выводи порта В. мне желательно сделать так что бы светодиоды можно было соединить катодами вместе и их на общий провод, а анодами к выходам порта В через резисторы. то есть нужна такая переделка программы что бы на выходах порта В появлялись лог.1. если можете то помогите. :) и ещё маленькое условие при работе должен светится только 1 светодиод.
а потом я уже сам попробую переделать что бы прога останавливалась когда бит 5 порта В будет равен не лог.0 , а лог.1.

Добавлено: Пт авг 22, 2008 09:34:24
Shutilla
Прошиваю tiny2313 БайтБластером из обучалки через Avreal. Благополучно прошилось раз эдак 5, а на шестой ругается вот так:
Command:
+TINY2313 -p1 -ab -o4MHz -% -n -ew clock.hex
% LPT base port 0x378
% assume that LPT data writes not faster then 1uS
% ByteBlaster found
% ByteBlaster mode
% osc = 4000kHz -> setup=1, hold=1,1
% Reset
% PgmOn reply 0xAC525353
% Synchronised after 1 try
% GetID reply 0x53535353
Not connected
Can't continue
Reset pin released
Adapter disabled
Если запустить с -!, то, няп, все байты читаются как 0х53. Причем контроллер работает исправно (относительно той программы, которая в нем есть).
С чего бы это (всмысле, куда копать)?

Добавлено: Пт авг 22, 2008 18:15:37
tych
Shutilla писал(а):куда копать ?
Возможно в посиках "соплей" :lol:

Добавлено: Вт авг 26, 2008 09:11:44
snayperAlfa
Есть статья про программаторы http://radiokot.ru/lab/controller/29/.Там есть про USB AR910 (НЕ протосовсский).Там используется AT90S2313.Но данного МК у меня в городе нету.Можно ли его заменить на Tiny2313 и при этом использовать прошивку для AT90S2313? Или может гдето есть программаторы с аппаратным USB->UART,но использующие доступные МК(Mega8 например).Хочется в качестве преобразователя использовать шнурок от мобиьного,коих у меня имеется в достаточном количестве.