директива ORG означает что в этом месте адресация начинается с указанного адреса. первый ORG 0 не играет роли поскольку там код и так начинается с нуля. а следующий ORG устанавливает адрес вектора прерывания, если ты убираешь его то компилятор тулит код в следующую ячейку, а не туда куда нужно. В результате вектор прерывания от таймера указывает куда-то в середину подпрограммы обработки прерывания, поскольку та начала располагаться сразу по первому вектору, сразу за вектором сброса. Если бы ты определил(зарезервировал) место для каждого прерывания, хотябы заглушкой из команд IRET или NOP то и вторая ORG не понадобилась бы.
необходимо сделать регулируемый генератор прямоугольных сигналов в диапазоне частот от 1 кГЦ до 100 кГц. 1 - 30 кГц с шагом 0.05 кГц 30 - 100 кГц с шагом 5 кГц сделать программо не проблема, но хотелось бы аппаратно. желательно на TINY13.
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи, mashtastic
необходимо сделать регулируемый генератор прямоугольных сигналов в диапазоне частот от 1 кГЦ до 100 кГц. 1 - 30 кГц с шагом 0.05 кГц 30 - 100 кГц с шагом 5 кГц сделать программо не проблема, но хотелось бы аппаратно. желательно на TINY13.
Для реализации первого диапазона потребуется системная частота МК не менее 18 МГц, а лучше порядка 50 МГц, иначе шаги будут с большой погрешностью.
а конкректнее? какой режим таймер-счетчика выбирать? какие регистры и для чего включать? что касаемо частоты МК, можно взять TINY85 - 20мГЦ
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи, mashtastic
Последний раз редактировалось xkp Вт сен 04, 2012 12:46:06, всего редактировалось 1 раз.
даташит и студия... было бы все так просто я бы к вам не обратился за помощью. не получается у меня ибо слабые познания английского
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи, mashtastic
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт сен 04, 2012 13:56:08
Держит паяльник хвостом
Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24 Сообщений: 906 Откуда: ВО
Рейтинг сообщения:0
xkp писал(а):
...было бы все так просто я бы к вам не обратился ...
Микроконтроллеры AVR семейства Mega А.В.Евстифеев, 2007 Микроконтроллеры AVR семейства Tiny А.В.Евстифеев, , а ещё есть и тини и мега вместе. И целая тема на форуме по работе в AVR-STUDIO на русском
ясно. помощи не ждать... спасибо и на этом PS. я даже в школе не умел учиться по книгам! хотя и был отличником по точным предметам.
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи, mashtastic
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт сен 04, 2012 14:24:46
Друг Кота
Карма: 67
Рейтинг сообщений: 1066
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 20029 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
xkp писал(а):
ясно. помощи не ждать...
Ну почему же... Просто вы немного ошиблись темой — ваш вопрос построения генератора имеет к ассемблеру весьма отдалённое отношение, тут скорее требуется понимание работы таймера/счётчика МК. Заведите отдельную тему, там и можно будет спокойно пообсуждать кому не лень. Например, я могу присоединиться к обсуждению.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи, mashtastic
возможно. но все же как замяукать аппаратный генератор?
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи, mashtastic
.def Temp=R16 .def Temp2=R17 .def Temp3=R18 .def Temp4=R19 .def Temp5=R20 .def ResCnt=R21 .cseg .org 0 rjmp RESET ; Reset Handler reti ; IRQ0 Handler reti ; IRQ1 Handler reti ; Timer2 Compare Handler reti ; Timer2 Overflow Handler reti ; Timer1 Capture Handler rjmp TIM1_COMPA ; Timer1 CompareA Handler reti ; Timer1 CompareB Handler reti ; Timer1 Overflow Handler reti ; Timer0 Overflow Handler reti ; SPI Transfer Complete Handler reti ; USART RX Complete Handler reti ; UDR Empty Handler reti ; USART TX Complete Handler reti ; ADC Conversion Complete Handler reti ; EEPROM Ready Handler reti ; Analog Comparator Handler reti ; Two-wire Serial Interface reti ; Store Program Memory Ready Reset: ldi Temp2,0 ldi Temp3,0 l_res: dec Temp2 brne l_res dec Temp3 brne l_res inc ResCnt ldi Temp, 0b11111111 out DDRB, Temp ldi Temp, 0b00010001 out TIMSK, Temp ldi Temp, 0b00000011 out TCCR1B, Temp ldi Temp, 0x23 out OCR1AH, Temp ldi Temp, 0x28 out OCR1AL, Temp ldi Temp,low(RamEnd) ;[1]Спросить про неполную таюлицу прерываний. Разобраться со СТЕКом до конца. out SPL,Temp ; ldi Temp,high(RamEnd) ;СТЕК - разобраться - пошерстить даташит out SPH,Temp ;Такая структура работает (в связи с особенностями Меги 8-ой), но прога не пашет. Разобраться! (Разобрался [1]) ldi Temp2, 0b00000001 ldi Temp, 0 out TCNT1H, Temp out TCNT1L, Temp sei Inf: rjmp Inf TIM1_CompA: ldi Temp,0 out TCNT1H, Temp out TCNT1L, Temp SelectArray: ;выбор массива
Подскажите плиз начинающему как выйти из прерывания в нужное место кода по условию , т.е. условие выполнено выходим на определенное место, не выполнено возвращаемся из прерывания как обычно... возможно ли такое вообще?
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт сен 04, 2012 20:36:18
Модератор
Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4601 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
xkp писал(а):
возможно. но все же как замяукать аппаратный генератор?
Использовать таймер с компаратором. Меняя значение компаратора, будете менять период следования прерываний от таймера, соответственно - частоту. В обработчике тупо дёргаем ногой и получаем меандр. Всё очень просто )
Цитата:
возможно ли такое вообще?
Возможно, если есть доступ к стеку возврата. Только я бы не советовал делать подобные манипуляции, т.к. глюк обеспечен на 99.9%.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт сен 04, 2012 20:43:51
Держит паяльник хвостом
Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24 Сообщений: 906 Откуда: ВО
Рейтинг сообщения:0
Код:
brne MET1 ldi temp,RAMEND возвращаем вершину стека ( это для 2313) out SPL,temp push ZL Сохраняем адрес подпрограммы (обычно ее метку) в которую хотим попасть push ZH reti Попадаем , да и обратите внимание на SREG , возможно его надо будет почисть если Ваша программа начинается с команд проверяющие флаги MET1: reti
алекс, я пока не совсем коректно понял, а это обеспечит достаточно точные показания частоты? нужно от 1 кГц до 30 кГц с шагом 50 Гц
_________________ R5VCH Хотелки: СпойлерАналоговый осциллограф С1-112, С1-118, другие не/рабочие модули от комплекса ОДА-102 всё что касается AVR, arduino, raspberry всё что касается КВ-УКВ-радиосвязи, mashtastic
Сейчас этот форум просматривают: Satyr7 и гости: 32
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения