програмирование AVR на АСЕМБЛЕРЕ для чайников
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
английский я знаю по стоьку по скольку.... в школе слышал, а не учил. как сейчас понимаю ЗРЯ!!! за статейку лайк и спасибо. почитал. но! я такой что мне надо объяснять, либо взять готовое и разобраться самому. а вот писать что то для себя из таких статей я еще котенок, т.е. не подрос еще, маленький, не умею...

R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
не могу запустить таймер_счетчик_0_по_переполнению.
помогите.
помогите.
- Вложения
-
- Текстовый документ.txt
- (1.71 КБ) 308 скачиваний
Последний раз редактировалось xkp Вт фев 21, 2012 22:39:18, всего редактировалось 1 раз.
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
Попробовал в AVRStudio 4.13 SP2. Действительно не запускается.
Docendo discimus
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
В 4.17 вообще не считает, следовательно и прерывание по переполнению никогда не сработает.
В протеусе пашет
В протеусе пашет
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
да. действительно в протеусе работает. кстати MCUCR обязательно задавать?
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
вопрос
остается
помогите замяукать 8-разрдный АЦП на attiny13. большая просьба выложить текст (от .include до .exit) с коментариями замяукования уровня АЦП в регистр, например R20.
остается
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
а предделитель для таймера настроил? он же в отключенном состоянии.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
2Alexeyslav:
Код: Выделить всё
ldi tmp,0b00000100 ;0b00000100 ;0.25мкс*128=64мкс
out tccr0b,tmpDocendo discimus
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
xkp писал(а):вопрос [...]остается
Инициализация:
Код: Выделить всё
OUTI ADCSRA,(1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS0) ;Включаем АЦП, его прерывание, настраиваем предделитель тактовой частоты
OUTI ADCSRB,0 ;источник автосрабатывания отключен
OUTI ADMUX,(1<<ADLAR)|(1<<MUX1) ;выравнивание влево (ADCH - 8 старших бит), 1-й канал
OUTI - распространенный макрос, упрощает написание кода.
Код: Выделить всё
.macro OUTI
LDI R16,@1
OUT @0,R16
.endm
Чтение АЦП:
Код: Выделить всё
ADC_INT: ;сюда попадаем по JMP\RJMP из таблицы векторов прерываний
IN R24,ADCH ;читаем АЦП в R24
RETI ;выход из прерывания
Как пользоваться:
Код: Выделить всё
;там где надо прочитать АЦП пишем:
SBI ADCSRA,ADSC ;выставить бит начала преобразования
;после чего, по прошествии нескольких тактов (зависит от предделителя) произойдет прерывание АЦП
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
почти все понятно, если не учитывать ругань аврстудии
D:\proshivki\AStudio\acp_tnl3\acp_tnl3\acp_tnl3. asm(33): error: OUTI: Unknown instruction or macro
D:\proshivki\AStudio\acp_tnl3\acp_tnl3\acp_tnl3. asm(33): error: ADCSRA: Unknown instruction or macro
D:\proshivki\AStudio\acp_tnl3\acp_tnl3\acp_tnl3. asm (33): error: syntax error, unexpected ','
D:\proshivki\AStudio\acp_tnl3\acp_tnl3\acp_tnl3. asm(33): error: OUTI: Unknown instruction or macro
D:\proshivki\AStudio\acp_tnl3\acp_tnl3\acp_tnl3. asm(33): error: ADCSRA: Unknown instruction or macro
D:\proshivki\AStudio\acp_tnl3\acp_tnl3\acp_tnl3. asm (33): error: syntax error, unexpected ','
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
беру свои слова обратно, ибо смысл не сразу понял. ЗАРАБОТАЛО!!! СПАСИБО!!!
будем думать дальше...
а именно: сравнивать значение АЦП с датчиком оборотов на эл.двигателе и регулировать его скорость
двигатель: 18в, 6000 оборотов
датчик: оптический, 2 импульса на один оборот
будем думать дальше...
а именно: сравнивать значение АЦП с датчиком оборотов на эл.двигателе и регулировать его скорость
двигатель: 18в, 6000 оборотов
датчик: оптический, 2 импульса на один оборот
- Вложения
-
- Текстовый документ.txt
- (1.83 КБ) 210 скачиваний
Последний раз редактировалось xkp Вт фев 21, 2012 22:41:00, всего редактировалось 1 раз.
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
поправочка на прерывания, забыл сохранить на всякий случай
adc_inc:
push tmp
push tmp0
in tmp,sreg
push tmp
IN R24,ADCH
pop tmp
out sreg,tmp
pop tmp0
pop tmp
reti
PS. в протеусе работает
adc_inc:
push tmp
push tmp0
in tmp,sreg
push tmp
IN R24,ADCH
pop tmp
out sreg,tmp
pop tmp0
pop tmp
reti
PS. в протеусе работает
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
Макросы лучше до .cseg ставить, а можно их вообще в отдельный файл запихать, чтоб из разных программ можно было подключать, как библиотеки в Си.
Кстати, на будущее, лучше использовать этот вариант, он умеет работать с адресами устройств В/В больше 0x3F:
Кстати, на будущее, лучше использовать этот вариант, он умеет работать с адресами устройств В/В больше 0x3F:
Код: Выделить всё
.macro OUTI
LDI R16,@1
.if @0>63
STS @0,R16
.else
OUT @0,R16
.endif
.endm
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
продолжаем мучать.....
подскажите как сделать апаратный шим на тини13. какие битики нужно забить и чем регулировать ширину импульса.
вот написал программно (изменение ширины от ацп), но хотелось бы аппаратный шим, а то на этом и частота меняется((
полный текст программы во вложении
подскажите как сделать апаратный шим на тини13. какие битики нужно забить и чем регулировать ширину импульса.
вот написал программно (изменение ширины от ацп), но хотелось бы аппаратный шим, а то на этом и частота меняется((
полный текст программы во вложении
- Вложения
-
- acp_tn13.asm
- (4.42 КБ) 343 скачивания
Последний раз редактировалось xkp Вт фев 21, 2012 22:42:01, всего редактировалось 1 раз.
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
Все подробности работы таймера в режиме ШИМ прекрасно расписаны в даташите на контроллер. Даже с примерами и подробными диаграммами работы.
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
если по внимательнее читать то выше я писал что не дружу с английским. а даташита на русском я не видел.
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
Заниматься микроконтроллером не зная английского - это блуждать ночью в темном лесу.
Ну да ладно.
Для таймера выбираешь режим FAST PWM.
Биты регистра TCCR0A: COM0A1=1 COM0A0=0 или 1(инверсный выход)
WGM01=1 ,WGM00=1.
Биты регистра TCCR0B: WGM02=0,
CS02-CS01-CS00
0 0 0 - таймер выключен
0 0 1 - предделитель = 1
0 1 0 - предделитель = 8
0 1 1 - предделитель = 64
1 0 0 - предделитель = 256
1 0 1 - предделитель = 1024
В регистре OCR0A - значение момента при котором будет меняться состояние выхода OC0A.
Ну да ладно.
Для таймера выбираешь режим FAST PWM.
Биты регистра TCCR0A: COM0A1=1 COM0A0=0 или 1(инверсный выход)
WGM01=1 ,WGM00=1.
Биты регистра TCCR0B: WGM02=0,
CS02-CS01-CS00
0 0 0 - таймер выключен
0 0 1 - предделитель = 1
0 1 0 - предделитель = 8
0 1 1 - предделитель = 64
1 0 0 - предделитель = 256
1 0 1 - предделитель = 1024
В регистре OCR0A - значение момента при котором будет меняться состояние выхода OC0A.
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
спасибо работает отлично!!!
только вот в моей программе уже 4 прерывания используется и после "таймер-счетчика 0 по переполнению" (tim0_ovf) вылетает на начало векторов на RJMP RESET
только вот в моей программе уже 4 прерывания используется и после "таймер-счетчика 0 по переполнению" (tim0_ovf) вылетает на начало векторов на RJMP RESET
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
ОПАЧКИ!!!
TIM0_OVF заработал в аврстудии!!! как? он же раньше не работал!!!
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
- xkp
- Опытный кот
- Сообщения: 781
- Зарегистрирован: Ср ноя 18, 2009 12:50:31
- Откуда: ковров
- Контактная информация:
Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
интересная вещичка...
на вывод PB0 и GND вешаем светодиод, на вывод PB4, CND, Vcc переменный резистор. светодиод плавно загорается и плавно гаснет, скорость регулируется переменным резистором.
я собрал 3 таких а на выход через транзисторы подключил кусочек RGB ленты, забавно.
на вывод PB0 и GND вешаем светодиод, на вывод PB4, CND, Vcc переменный резистор. светодиод плавно загорается и плавно гаснет, скорость регулируется переменным резистором.
я собрал 3 таких а на выход через транзисторы подключил кусочек RGB ленты, забавно.
- Вложения
-
- Текстовый документ.txt
- (2.87 КБ) 224 скачивания
Последний раз редактировалось xkp Вт фев 21, 2012 22:43:37, всего редактировалось 1 раз.
R5VCH
Хотелки:
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic