лучше в железе смотреть. Кстати, компилятор вот так сделать не позволяет TCNT1=0x00 ? Другие 16-ти битные регистры соответсвено, по идее он должен сам нужный порядок чтения/записи двухбайтных регистров правильно ставить.sachok писал(а):Проблема с настройкой ШИМ. Делаю это так: (вложение). В протеусе работает только 1 канал, почему не пойму.
ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
- Реклама
доброго времени суток в новом году..
Есть три подпрограммы:
Подскажите чайнику, каким образом можно вызывать данные подпрограммы через прерывание, например нажатие кнопки на входе INT0. Если можно, кинте приблизительный или похожий кусок кода на асме. Организовывать прерывания я умею. Заранее благодарен..
Есть три подпрограммы:
Код: Выделить всё
_01: sbi portd,4
nop
cbi portd,4
rjmp _01
_02: sbi portd,3
nop
cbi portd,3
rjmp _02
_03: sbi portd,2
nop
cbi portd,2
rjmp _03Это просто, единственное, что каждая подпрограмма у вас- бесконечный цикл, поэтому вызвав один раз эту подпрограмму вы из прерываний уже не вернетесь. Если это вас устраивает, то сделать проще простого.poff писал(а):доброго времени суток в новом году..
Подскажите чайнику, каким образом можно вызывать данные подпрограммы через прерывание, например нажатие кнопки на входе INT0. Если можно, кинте приблизительный или похожий кусок кода на асме. ..
Код: Выделить всё
...
.org INT0addr; размещаем вызов по адресу вектора INT0
rjmp _03; прыгаем на код
.. далее ваш кодКод: Выделить всё
...
.org INT0addr; размещаем вызов по адресу вектора INT0
rjmp _03; прыгаем на код
.. далее ваш код
...
_03: sbi portd,2
nop
cbi portd,2
reti; возврат из обработчика прерывания
Приветствую Вас Smac. Способ описанный Вами я знаю. Возможно я не правильно сформулировал задачу. Требуется по прерыванию INT0 перебирать друг за другом подпрограммы _01, _02, _03, итд. Причем каждая из них является бесконечным циклом. Вставлять чтото в подпрограммы не хочется поскольку они формируют нужную мне частоту. Я уже и так разогнал процессор на 20МГц. Думал что есть какое-то изящное решение с использованием программного счетчика и регистровых пар...? В любом случае спасибо за внимание.
З.Ы. О моем проекте. Летом купил участок по застройку. В красивом месте, в дельте двух рек. В комплекте старый развалившийся дом, сарай и пр. Место очень древненее. Вот и захотелось мне перед застройкой найти у себя клад или какую нибудь экзотику - что-то есть наверняка. Пошерстил в инете схемы металлоискателей - все они какие-то любительские, не вызывают доверия и ктому-же с ошибками.
Собрал парочку(кварцевый и на биениях) - работают, но плохо. Заходелось сделать чтото приличное самостоятельно. Сейчас пытаюсь написать синтезатор эталонной частоты с отображением на 7-сегментном индикаторе. Хочется все устройство сделать на одном кристалле. Может быть эту тему нужно выложить в отдельную ветку.
Есть у кого-то идеи?????????
З.Ы. О моем проекте. Летом купил участок по застройку. В красивом месте, в дельте двух рек. В комплекте старый развалившийся дом, сарай и пр. Место очень древненее. Вот и захотелось мне перед застройкой найти у себя клад или какую нибудь экзотику - что-то есть наверняка. Пошерстил в инете схемы металлоискателей - все они какие-то любительские, не вызывают доверия и ктому-же с ошибками.
Собрал парочку(кварцевый и на биениях) - работают, но плохо. Заходелось сделать чтото приличное самостоятельно. Сейчас пытаюсь написать синтезатор эталонной частоты с отображением на 7-сегментном индикаторе. Хочется все устройство сделать на одном кристалле. Может быть эту тему нужно выложить в отдельную ветку.
Есть у кого-то идеи?????????
- Реклама
Т. е. Вам требуется генератор прямоугольных импульсов на три канала, частота которых одинакова, а фаза каждого сдвинута относительно другого на определенную величину? Я правильно понимаю? Лучше вы нарисуйте сигнал, который Вам нужен, а дальше посмотрим как это можно решить. На рисунке желательно указать параметры сигнала (период, длительность импульса, смещение фаз и т.п.)poff писал(а):Приветствую Вас Smac. Способ описанный Вами я знаю. Возможно я не правильно сформулировал задачу. Требуется по прерыванию INT0 перебирать друг за другом подпрограммы _01, _02, _03, итд. Причем каждая из них является бесконечным циклом. ...
Место очень древненее. Вот и захотелось мне перед застройкой найти у себя клад или какую нибудь экзотику - что-то есть наверняка. Пошерстил в инете схемы металлоискателей - все они какие-то любительские, не вызывают доверия и ктому-же с ошибками.
.....
Желательно также описать, что еще вы хотите от контроллера (как можно более конкретно) чтобы оценить возможно ли это на данном кристалле.
По поводу клада. А времени не жалко на собирание металлоискателей?
Может быть и нет ничего, или находка по ценности не превысит затрат на детали, не говоря уже о потерянном времени?
to Smac.До весны, похоже, работы не будет. Времени навалом. Я все время занимаюсь самообразованием. За 2 года самостоятельно изучил ПИКи и Атмел и даже заработал не этом денег. А еще здорово расширил кругозор...
Код который был выложен на форуме был написан специально для форума, чтобы упростить обьяснялки.
Есть идея изготовить на базе 2313 прямой синтезатор частоты (Direct Digital Synthesizers, DDS).
Предполагается две кнопки: + и - . Частоту 1 МГЦ сдвигать с минимальным шагом в пределах +/- 10кгц. Выход синтезатора - прямоугольные импульсы. Далее эти импульсы суммируются на логическом элементе с импульсами генератора подключенного к рамке металлоискателя. Разностные биения двух генераторов можно услышать а можно, например, попытаться проанализировать програмно. Текущую частоту можно запомнить в ПЗУ и увидеть на индикаторе - вот и вся идея.
Код который был выложен на форуме был написан специально для форума, чтобы упростить обьяснялки.
Есть идея изготовить на базе 2313 прямой синтезатор частоты (Direct Digital Synthesizers, DDS).
Предполагается две кнопки: + и - . Частоту 1 МГЦ сдвигать с минимальным шагом в пределах +/- 10кгц. Выход синтезатора - прямоугольные импульсы. Далее эти импульсы суммируются на логическом элементе с импульсами генератора подключенного к рамке металлоискателя. Разностные биения двух генераторов можно услышать а можно, например, попытаться проанализировать програмно. Текущую частоту можно запомнить в ПЗУ и увидеть на индикаторе - вот и вся идея.
Прямой цифровой синтез предполагает наличие ЦАП например матрицы R-2R. Использование DDS оправдано когда нужен сигнал с формой отличной от прямоугольной, обычно с помощью DDS можно получить сигнал либо низкой частоты, либо с низким количеством отсчетов на период (особенно применительно к AVR).poff писал(а):to Smac.Д
Есть идея изготовить на базе 2313 прямой синтезатор частоты (Direct Digital Synthesizers, DDS).
Предполагается две кнопки: + и - . Частоту 1 МГЦ сдвигать с минимальным шагом в пределах +/- 10кгц. Выход синтезатора - прямоугольные импульсы. Далее эти импульсы суммируются на логическом элементе с импульсами генератора подключенного к рамке металлоискателя. Разностные биения двух генераторов можно услышать а можно, например, попытаться проанализировать програмно. Текущую частоту можно запомнить в ПЗУ и увидеть на индикаторе - вот и вся идея.
Если же требуется меандр с частотой 1 МГц с возможностью сдвига на 10 кГц, то на AVR это малореальная задача, т. к. на частоте 20 МГц длительность полупериода сигнала составляет 10 тактов, прибавление 1 такта к полупериоду равносильно изменению частоты на 100 кГц. При этом контроллер практически будет занят исключительно генерацией сигнала данной частоты.
Думаю что генератор сигнала нужно сделать аппаратный, управляемый с МК, мк попробовать использовать для обработки и индикации, но я бы взял мегу8 или мегу88, вместо тини, хотя бы потому что в первых есть АЦП, которые могут понадобиться в вашей задаче.
- Lex_miniman
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Ср сен 10, 2008 18:28:39
- Контактная информация:
Такая проблема:
Программировал через lpt на 5 проводах через AVReal.
Потом поменял мамку. Теперь не работает.
Прошил один раз новый контроллер(непонятно как, но он не работал) и больше не прошивает. не может resync (((
Так же пробывал другие 5 проводков, которые manda systems STK200. Через Codevision, номера порта все пробывал. Не работает!
Изза чего это может быть? И как же решить?
------------
Спаял программатор на COM, что на http://easyelectronics.ru/avr-shag-perv ... mator.html
Не работает! менял в биосе адреса COM и режимы LPT.
Пытался программировать через uniprof. Ни один программатор он не определяет!
Мог ли я до этого благополучно спалить контроллеры через lpt?
Программировал через lpt на 5 проводах через AVReal.
Потом поменял мамку. Теперь не работает.
Прошил один раз новый контроллер(непонятно как, но он не работал) и больше не прошивает. не может resync (((
Так же пробывал другие 5 проводков, которые manda systems STK200. Через Codevision, номера порта все пробывал. Не работает!
Изза чего это может быть? И как же решить?
------------
Спаял программатор на COM, что на http://easyelectronics.ru/avr-shag-perv ... mator.html
Не работает! менял в биосе адреса COM и режимы LPT.
Пытался программировать через uniprof. Ни один программатор он не определяет!
Мог ли я до этого благополучно спалить контроллеры через lpt?
Здравствуйте. Сделал простые часы http://radiokot.ru/circuit/digital/home/33/ , поставил фузы для кварца 10мгц: cksel=1111, sut=11. Работают, но примерно в 10 раз медленнее (деление ckdiv8 снял). Осциллограф на кварце ничего не показывает. Хотел перейти на внутренний генератор, AVRDUDE пишет ошибку верификации. Программатор usbasp.
Подскажите, что неправильно делаю. Спасибо.
Подскажите, что неправильно делаю. Спасибо.
- Lestat
- Встал на лапы
- Сообщения: 111
- Зарегистрирован: Сб мар 31, 2007 13:53:07
- Откуда: Lviv
- Контактная информация:
есть ATTiny2313
ставлю фюзы как на рисунке, после этого контролер начинает глючить когда обращаюсь к нему через программатор, 1 з 5 раз нормально прочитает "Chip signature", сама программа которая зашита в мк работает, после того как снимаю скдив/8 контролер нормально программируется, что такое?
П.С. экспериментировал с 2мя контролерами, тоже самое.
П.С.С. то есть частота мк при фюзах как на рисунке=500кГц, а частота прошивки 750кГц, через это глючит?
ставлю фюзы как на рисунке, после этого контролер начинает глючить когда обращаюсь к нему через программатор, 1 з 5 раз нормально прочитает "Chip signature", сама программа которая зашита в мк работает, после того как снимаю скдив/8 контролер нормально программируется, что такое?
П.С. экспериментировал с 2мя контролерами, тоже самое.
П.С.С. то есть частота мк при фюзах как на рисунке=500кГц, а частота прошивки 750кГц, через это глючит?
- Вложения
-
- sshot-1.png
- (6.56 КБ) 456 скачиваний
Именно через это, частота программирования должна быть раза в 3 меньше, тактовой частоты контроллера, а лучше в 4.Lestat писал(а):есть ATTiny2313
...
П.С. экспериментировал с 2мя контролерами, тоже самое.
П.С.С. то есть частота мк при фюзах как на рисунке=500кГц, а частота прошивки 750кГц, через это глючит?
Я тут поигрался немного с фьюзами у Тинни2313 и загнал ее в стопор, теперь она не определяется. Предположительно RSTDISBL=0 (но точно не помню)
это можно вылечить без параллельного программатора?[/code]
Код: Выделить всё
avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.26rev3 (Oct 31 2008 14:01:29) http://www.ln.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command: -p1 +TINY2313 -o4000 -as -e -%
% LPT port number 1
% LPT base address 0x378
% DLportIO.dll succesfully loaded, DLportIO.sys interface activated
% LPT write cycle 4.46us
% Atmel adapter for STK*00 found
% STK mode
% osc = 4000kHz -> setup=1, hold=1,1
% Reset
% PgmOn reply FF FF FF FF
% Try 1 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 2 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 3 to resync by reset pulse % PgmOn reply FF FF FF FF
% Try 4 to resync by reset pulse % PgmOn reply FF FF FF FF
Can't resync
Reset pin released
Adapter disabledЗдравствуйте. Собрал две схемы из обучалки - Байт Бластер и бегущие огоньки только на ATtiny2331, а не на 90s2313. Скомпилировал залил вроде все без ошибок, а огоньки не бегут. Прилагаю скриншот консоли и исходник. Посмотрите пожалуйста. То что на скриншоте означает -что программатор работает или не факт? Просто не знаю где ошибку искать.
- Вложения
-
- консоль.jpg
- скриншот консоли при прошивке
- (79.78 КБ) 445 скачиваний
-
- code.asm
- исходник
- (1.49 КБ) 390 скачиваний
всем доброй ночи уважаемые Коты давно занимаясь аналоговой электроникой решил занятся микроконтроллерами для пробы собрал часы на attini 2313 те что в http://radiokot.ru/circuit/digital/home/33 все собрал прошил но вот незадача часы идут но ровно в десять раз медленней положенного тоесть за 10 минут текущего времени на них проходит всего лиш минута где ошибка подскажите начинающему
- kvark85
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Сб ноя 08, 2008 21:23:06
- Откуда: Харьков
- Контактная информация:
Здравствуйте. Нужна пмощь. Делаю димммер на ATtiny2313. Написана небольшая програмка опроса сенсорной кнопки в maind. Добавляю прерывание INT0 (с помошью него принимаю команду с ик пульта) - и CodeVisionAVR при компиляции после этого момента выдает предупреждение, которая прикреплена в виде небольшой картинки.
вот перевод на корявый русский этого предупреждения: Оценочные данные стека 38 байта (ов), превышает объем средств, выделяемых на эти цели в конфигурации с компилятором.
Она рекомендовала увеличить размер данных мешков. непонял какого стека можем нехватить для моей программы??
вот перевод на корявый русский этого предупреждения: Оценочные данные стека 38 байта (ов), превышает объем средств, выделяемых на эти цели в конфигурации с компилятором.
Она рекомендовала увеличить размер данных мешков. непонял какого стека можем нехватить для моей программы??
- Вложения
-
- Warning.PNG
- (8.78 КБ) 441 скачивание
Последний раз редактировалось kvark85 Вт янв 27, 2009 21:00:13, всего редактировалось 2 раза.
Если кварц такой, как надо, то, вероятно, фьюзы неправильно стоят. Найдите тему по этой статье, там написано, какие должны быть.радан писал(а): но вот незадача часы идут но ровно в десять раз медленней положенного тоесть за 10 минут текущего времени на них проходит всего лиш минута где ошибка подскажите начинающему
Если долго мучиться, что-нибудь... сломается.


