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

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

Добавлено: Пн июн 02, 2014 11:49:10
WishMasterMax
А, ну в принципе да))Что-то я тупанул)
А резистор не повлияет на сигнал?

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

Добавлено: Вт июн 03, 2014 11:07:12
ibiza11
3.6 + 0.3 = 3.9В
5.0 - 3.9 = 1.1В
если предельный ток 20мА, то R = 1.1/0.02 = 55 Ом минимум
поставь 330 Ом и не парься. при этом ток будет 3,3мА

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

Добавлено: Вт июн 03, 2014 12:02:50
Gudd-Head
WishMasterMax писал(а):А резистор не повлияет на сигнал?
Нет, не должен.

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

Добавлено: Вт июл 08, 2014 07:23:39
vlipt
С наскока кинулся я читать тему, но понял, что даже пробежать её по диагонали, потребуется неделя. Так что, если этот вопрос уже обсуждался, извините.

Задача (чисто учебная) такая: С помощью двух кнопок по прерыванию PCINT управлять светодиодом. Код был написан для ATTiny13. В AVR Studio симулируется нормально.

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

.org 0               ;Задание нулевого адреса старта программы
rjmp reset         ;Безусловный переход к метке reset
.org 2               ;Адрес прерывания по изменению состояния выводов
rjmp pin_change;Безусловный переход к метке pin_change

reset:               ;Начало раздела инициализации контроллера
sei                    ;Глобальное разрешение прерываний 
ldi r16,RAMEND ;Загрузка в регистр r16 адреса верхней границы ОЗУ
out SPL, r16      ;Копирование значения из r16 в регистр указателя стека SPL
sbi DDRB, 0      ;Установка 0-го бита в регистре DDRB в "1" (РВ0 - выход)
ldi r16,(3<<1)   ;Загрузка в r16 двух "1", смещенных на 1 разряд влево
out PORTB,r16  ;Включение подтягивающих резисторов на входах РВ1 и РВ2
out PCMSK,r16;Разрешение прерываний по изм. сост. выводов для РВ1 и РВ2
ldi r16,(1<<PCIE) ;Загрузка в регистр r16 единицы в разряд PCIE
out GIMSK, r16  ;Разрешение прерывания по изменению состояния выводов
Дальше не важно. Для ATTiny2313 я изменил вектор прерывания на 0x000B. Остальные регистры и биты в них вроде совпадают. НО последняя приведенная здесь команда не записывает 1 в GIMSK. И в симуляторе и собственно устройство не работает. Почему? Даташит читал,но все равно ничего не понял.

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

Добавлено: Вт июл 08, 2014 07:53:06
akl
Да, вроде, всё записывает. И прерывания симулируются.
GIMSK2313.GIF

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

Добавлено: Вт июл 08, 2014 08:05:36
vlipt
akl писал(а):Да, вроде, всё записывает. И прерывания симулируются.
GIMSK2313.GIF
Так это что, глюки 6-й Студии? Или мои? Спасибо, буду копать дальше

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

Добавлено: Пт июл 11, 2014 15:47:49
Vezd
В МК ATtiny2313 частота синхронизации ввода-вывода clkI/O равняется частоте встроенного RC-генератора или отличается от нее?

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

Добавлено: Пт июл 11, 2014 15:54:59
Gudd-Head
Скорее завязана на тактовую частоту ядра. А уж от чего ядро тактируется...

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

Добавлено: Пт июл 11, 2014 15:58:05
Vezd
Если у меня тактовая частота МК 8 Мгц, то частота синхронизации ввода-вывода clkI/O может быть либо равна 8 Мгц, 1Мгц либо отсутствовать?
Можно где-нибудь в Atmel studio 6 посмотреть чему получается равной частота синхронизации ввода-вывода clkI/O?

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

Добавлено: Пт июл 11, 2014 21:52:09
Kavka
CLK_i/o равна частоте ядра, т.е. с учётом генератора и системного делителя.
Отключаться тактирование ввода-вывода может в режимах сна и т.п.
Смотреть это надо не в Студии, а спецификации на микросхему.

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

Добавлено: Пн июл 14, 2014 07:23:52
Vanes
Парни помогите прояснить ситуацию, вот два проекта для AT90S2313 первую программу писал на CodeVision потом решил эту же программу написать в WinAVR но вот в чем проблема компилированый файл (он же hex) оказался в WinAVR больше чем в CodeVision. Писал в WinAVR строчка в строчку, заменяя CodVision-кий синтаксис на Стандартный Си. Вопрос ! почему получилось в родном WinAVR hex получился больше чем в CodeVision который так паскудят из за его говнокода на выходе. Сразу скажу в Асеблере не силен.

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

Добавлено: Пн июл 14, 2014 14:35:36
Pink-Pank
Настройками оптимизации пробовали играться?

К тому же, это два разных компилятора - следовательно работают по разному. отсюда и код может быть у них совершенно разный.

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

Добавлено: Вт июл 15, 2014 06:53:07
Vanes
Насчет оптимизации я пробовал, но что то не особо выходит. Такая разница в таком не сложном алгоритме, хотя вчера писал прогу куда сложней работа с дисплеем и получилось что WinAVR скомпилировал на 500 байт меньше чем CodeVision. Вот такие пироги.

Как включить ШИМ на тини 2313

Добавлено: Ср июл 16, 2014 18:24:53
сарагоса
Вопрос к профессионалам ?
Решил изучить программирование микроконтроллеров,нашел тему -Регулирование коллекторного двигателя
Нашел, как для меня, очень хорошую программу-Flowcode-называется
Нашел файл плавного пуска двигателя,Во Flowcode он работает нормально,
а вот протеусе нет.
Я так понял что во flowcode нет включения шима.
Там есть иконка в ставить код C.
А в языке си я не бум бум.
Уж очень много там запятых,точек,скобочек ну других знаков
Мне очень сложно орентироваться, а Flowcode многое сразу стало понятно
Ну вопщем помогите мне с включением шима ,буду очень благодарен ВАМ
А то уже с конца апреля бьюсь над этой проблемой и ничего не выходит
Файл почему то не разрешает загрузить

Re: Как включить ШИМ на тини 2313

Добавлено: Чт июл 17, 2014 16:28:58
titoFF
Есть книга "Белов А.В. - Разработка устройств на
микроконтроллерах AVR". Там очень хорошо описано как все работает. Настоятельно советую изучить, а если после прочтения останутся вопросы- милости просим на форум. А так вам бесполезно что- то объяснять, Вы знаете чуть меньше, чем ничего.

Re: Как включить ШИМ на тини 2313

Добавлено: Чт июл 17, 2014 17:11:43
Pink-Pank
Файл заархивировать просто надо.
С самой функцией ШИМ разобрались?.
Симуляция в Proteus вообще запускается? Ошибок не выскакивает?
Сейчас попробовал сделать ШИМ во Flowcode - в Proteus все работает. Без всяких дополнительных включений.

Re: Как включить ШИМ на тини 2313

Добавлено: Чт июл 17, 2014 19:03:12
сарагоса
симуляция в протеусе запускается,ошибки не выскакивают
в flowcode работает нормально
как написать код инициализации шим еще не разобрался
можете просто написать код на си иницилизации шим и указать место
куда вставить переменные или данные шима

Re: Как включить ШИМ на тини 2313

Добавлено: Пт июл 18, 2014 07:59:57
Pink-Pank
Ничего инициализировать не надо! ШИМ работает. Все инициализируется автоматически. Попробуйте для начала просто его включить и в качестве параметров передать числа.

У Вас ошибка в алгоритме. Условие равенства проверяется вот так: synxro == 0. Когда Вы пишете synxro = 0, Вы просто присваиваете ей это значение. Т.е. переменная принимает значение false. В этом случае алгоритм всегда идет по левой ветке. Попробуйте ради интереса в левой ветке присвоить переменной speed значение 50-100 - увидите, ШИМ работает.

+ необходимо вывести макрос включения ШИМ перед циклом while.

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

Добавлено: Пт июл 18, 2014 09:12:41
ibiza11
как у вас вообще скомпилировался код в WinAVR, если реализации двух функций находятся в функции main?

Re: Как включить ШИМ на тини 2313

Добавлено: Пт июл 18, 2014 09:23:03
сарагоса
Отлично! Все заработало. СПАСИБО ВАМ за подсказку
я только переставил макрос шим перед циклом и все заработало
больше ничего не делал
НО есть одно но
дело в том что на atmega 8 работает с макросом шим
который стоит после цикла--------загадка
как думаете в чем причина


там вы про кнопку спасибо говорите
но я точно не знаю что это такое
если это вам спасибо то конечно нажму