Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 26, 2025 00:55:05

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 152, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 21:40:13 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Сообщений: 13490
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
teist писал(а):
Подскажите плиз начинающему как выйти из прерывания
в нужное место кода по условию , т.е. условие выполнено
выходим на определенное место, не выполнено возвращаемся
из прерывания как обычно...
возможно ли такое вообще?

Очень просто: внутри прерывания извлекаете два значения из стека (там адрес возврата), и делаете переход в нужное место, не забыв включить прерывание. Например:
Код:
-- условие сработало, попали сюда
pop r17
pop r17
sei
rjmp метка

Или переместить указатель стека ан слово вверх, но это не даст выигрыша ни по скорости, ни по памяти


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 22:00:41 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Вероятно это неправильное проектирование программы, если из прерывания надо переходить в другое место... а если часть алгоритма, который мы прервали не закончил свою работу? То что ты хочешь сделать - это переход внутри прерывания, а выход из прерывания может быть осуществлен только в точку в которой это прерывание возникло, либо на вектор сброса. Остальные варианты чреваты непредсказуемыми последствиями... даже когда кажется что этих последствий просто не может быть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 22:03:25 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Но даст возможность, по окончании программы по условию , вытолкнуть стек и продолжить прерванную прерыванием программу с того же места , восстановив все регистры.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 22:04:34 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 779
Откуда: ковров
Рейтинг сообщения: 0
Alexeyslav писал(а):
Остальные варианты чреваты непредсказуемыми последствиями... даже когда кажется что этих последствий просто не может быть.

и получится ядерная бомба.

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

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 22:08:49 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Alexeyslav писал(а):
Вероятно это неправильное проектирование программы, .

Нет , это обычная многозадачность , когда на одном процессоре и на одной области памяти программ процессор выполняет совершенно разные задачи одновременно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 22:10:54 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Сообщений: 13490
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
Вероятно это неправильное проектирование программы, если из прерывания надо переходить в другое место...

В 97% случаев - да. Тем более, если такой вопрос задаётся в этой теме.
Но есть и 3% случаев, когда программист чётко знает, что делает, и выиграет от этого драгоценные такты или байты.

Цитата:
Нет , это обычная многозадачность

Обычно она реализуется стандартными приёмами.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 22:16:19 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Ну о вкусах не будем спорить , покрайней мере в этой теме. Но я согласен с Вами в одном , если такой подход применяется , то надо чётко представлять почему и зачем и главное как делать правильно


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 22:17:11 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 779
Откуда: ковров
Рейтинг сообщения: 0
я многозадачность делал иначе... щас уже точно не помню...
но было так: 16-битный счетчик завязанный на таймере-счетчике. десять (!) задач. хотя и задачи были простые, каждая мигала своим светодиодом с определенной частотой, но память бедного TINY26 была забита на 98.6%

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 04, 2012 22:58:12 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
У таймера есть режим счета до сравнения и сброс по сравнению, заодно он может АППАРАТНО при этом событии инвертировать значение пина, к которому он подключен - получается сразу генератор на выходе, причем одному таймеру принадлежат сразу два вывода работу которых можно контролировать устанавливая соответствующй режим таймера - к нему может быть задействован либо один вывод, либо два и тогда на втором выводе сигнал будет в противофазе. Поэтому пишут что в контроллере 4 выхода ШИМ при 2-х таймерах в наличии...

Да, пожалуй раздел даташита посвященный режимам работы таймера довольно запутан, но там вроде бы как по картинкам все ясно...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 08:55:14 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1066
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 20010
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Alexeyslav писал(а):
но там вроде бы как по картинкам все ясно...

Вот именно! Достаточно взглянуть на эту картинку чтобы понять: это то, что надо!
Изображение
xkp, вот формула из ДШ для генерируемой частоты:
Изображение
OCRnx от 0 до 255 для 8-ми битного таймера и до 65535 для 16-ти битного таймера.
Можно нарисовать таблицу (например, в Экселе) всех возможных частот в зависимости от значений OCRnx и N, и оценить точность генерируемых частот.


Вложения:
Безымянный2.GIF [4.51 KiB]
Скачиваний: 622
Безымянный.GIF [10.89 KiB]
Скачиваний: 737

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 10:04:36 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 779
Откуда: ковров
Рейтинг сообщения: 0
именно этот режим и не получается запустить
Код:
.INCLUDE "tn13DEF.INC"
.list
.def tmp=r16
.def tmp0=r17
.def cnt=r19
.DSEG

.cseg
.org $0a
RESET:
   ldi tmp,low(RAMEND)
   out spl,tmp
.macro   OUTI
   LDI   R16,@1
   OUT   @0,R16
.endm
   OUTI   tccr0a,(1<<com0a1)|(0<<COM0A0)|(0<<com0b1)|(0<<COM0b0)|(1<<wgm01)|(0<<wgm00)

   ldi tmp,low(RAMEND)
   out spl,tmp

   ldi tmp,$01   ;преддилитель 64
   out tccr0b,tmp
   ldi tmp,0b00000111
   out ddrb,tmp
   ldi tmp,0
   out portb,tmp
   sei
main:
   ldi tmp,$c0
   out ocr0a,tmp
;   ldi tmp,$10
;   out ocr0b,tmp
main_2:
   rjmp main_2
;      Address Labels Code Comments
.org $00
   rjmp RESET ; Reset Handler
      reti   ;rjmp EXT_INT0 ; IRQ0 Handler
      reti   ;rjmp PCINT0 ; PCINT0 Handler
      reti   ;rjmp TIM0_OVF ; Timer0 Overflow Handler
      reti   ;rjmp EE_RDY ; EEPROM Ready Handler
      reti   ;rjmp ANA_COMP ; Analog Comparator Handler
      reti   ;rjmp TIM0_COMPA ; Timer0 CompareA Handler
      reti   ;rjmp TIM0_COMPB ; Timer0 CompareB Handler
      reti   ;rjmp WATCHDOG ; Watchdog Interrupt Handler
      reti   ;rjmp ADC_inc ; ADC Conversion Handler
.exit

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 10:59:58 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
что, нет реакции на выводе OC0A?
так он у тебя постоянно в 0 сбрасывается
Код:
OUTI   tccr0a,(1<<com0a1)|(0<<COM0A0)|(0<<com0b1)|(0<<COM0b0)|(1<<wgm01)|(0<<wgm00)

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 11:04:19 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 779
Откуда: ковров
Рейтинг сообщения: 0
кто что сбрасывает? подробнее пожалуйста. эти битики регистра установил согласно даташиту

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 11:17:44 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
комбинация :
Код:
OUTI   tccr0a,(1<<com0a1)|(0<<COM0A0)....

всегда, т.е. при совпадении OCR0A и TCNT0 переводит вывод OC0A в 0, чтобы значение на выводе менялось каждый раз на противоположенное надо установить COM0A1:COM0A0 = 01, в посте выше,где приведены диаграммы, обрати внимание на надпись Toggle

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 11:42:58 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 779
Откуда: ковров
Рейтинг сообщения: 0
вот и заработало!!! :) начинаются эксперименты по разгону максимальной частоты tiny85

PS хм.. тини13 отлично справляеться с моими поставленными задачами на своей частоте 9.6 мГц. точность не сильно большая но мне хватит, наверное...

следующим вопросом станет время, точнее, как можно точнее измерить ширину импульса. можно даже и не в секундах или миллисекундах, а в условных еденицах.
железо: ОУ MCP6022, МК TINY85. ОУ нужен для предварительной обработки сигнала, выдает на МК импульсы лог 1, которые и нужно мерить. из даташита на ОУ он может работать на частоте до 10 мГц. тинька будет на кварце 20 мГц, может и больше, если разгонится. хочу ловить импульсы по переднему фронту, но прерывания по переднему фронту на int0 уже задействованы. какие будут предложения?
может просто ждать появления лог 1?
например:
Код:
metka:
   sbis pinb,0
   rjmp metka
;тут мерием время в УЕ
   clr tmp
   clr tmp0
metka2:
   inc tmp
   cpi tmp,$ff
   brlo metka3
   inc tmp0
metka3:
   sbic pinb,0
   rjmp metka2
; получили време в tmp0,tmp в УЕ

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 18:48:23 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4596
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Посмотрите в сторону режима захвата. Не знаю есть ли он в Вашем МК, но думаю, что есть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 19:11:30 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 779
Откуда: ковров
Рейтинг сообщения: 0
режим захвата? не слышал. кстати, освободил int0. теперь можно и по нему. но все же, что за режим захвата?

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 20:08:40 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4596
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Не знаю, есть ли подобное в Атмелах, не силён в них, но в ПИКах есть. Это нечто обратное ШИМу. Т.е. по одному фронту модуль обнуляет таймер и запускает его, а по другому фронту - останавливает. В итоге, имеем событие от модуля и период в тактах таймера, находящийся в регистре таймера.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 20:11:55 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 779
Откуда: ковров
Рейтинг сообщения: 0
это у нас называется прерывания по переднему и заднему фронтам входа INT0. хотя... наверное это не совсем то... но идея хорошая. подумаю над этим.

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср сен 05, 2012 20:14:37 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4596
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Нет, прерывания по INT - это совсем другое.
Режим захвата имеет тот-же модуль, что и режим ШИМа. Т.е. он может и так и сяк.

PS: Дайте прямую ссылку на ДШ вашего МК.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 152, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y