Например TDA7294

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

Текущее время: Пн сен 08, 2025 03:15:18

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


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



Начать новую тему Ответить на тему  [ Сообщений: 3179 ]     ... , , , 80, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 01:32:28 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс май 30, 2010 20:27:33
Сообщений: 63
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
не сочтите за наглость, но осваивать асму начал 5 дней назад, можите превести пример кода?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 01:43:31 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4573
Откуда: Планета Земля
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
АСМ тут не причём. Полазайте в ДШ на Ваш МК и посмотрите как можно программно включать и отключать сторожевой таймер.
После работы бутлодыря включите его и зациклите навечно программу, сброс произойдёт сам.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 01:47:24 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс май 30, 2010 20:27:33
Сообщений: 63
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Спасибо, уже в ДШ ползую, нашел по Спящую собаку главу, буду изучать :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 02:20:12 
Друг Кота

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 19:00:15 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс май 30, 2010 20:27:33
Сообщений: 63
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
так, пробую
Код:
WDT_off:
wdr
ldi r16, (1<<WDCE) | (1<<WDE)
sts WDTCSR,r16
ldi r16, (0<<WDE)
sts WDTCSR,r16
ret

WDT_on:
wdr
ldi r16, (1<<WDCE) | (1<<WDE)
sts WDTCSR,r16
ldi r16, (1<<WDE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0)
sts WDTCSR,r16
ret


Один пень, при собакином ресете, камень виснет. Периферия не пашет до передергивания питания. Вообщем эффект такой же как при команде JMP $0000 Теряю надежду, помогите...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 19:18:57 
Друг Кота

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 19:30:44 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс май 30, 2010 20:27:33
Сообщений: 63
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
заливаю в качестве основной программы мигалку диодом, в ней ничего нету, кроме изменения одного пина на порту....

может я чего-то не понял, при ресети через собаку, перефирия и регистры должны сбрасываться или нет?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 19:58:39 
Друг Кота

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 20:34:51 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс май 30, 2010 20:27:33
Сообщений: 63
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
вот программа, для общего понимания

Спойлер;********************************************************************
; Подпрограмма загрузчик
;********************************************************************
; BOOTLOADER Для ATmega168
; Версия 1.2
; Автор: -=-Kill17-=-
;********************************************************************
; R16 - регистр для приема данных по USART
; R17 - регистр для промежуточных операций
; R18 - используется как счетчик слов
; R19 - регистр для передачи данных по USART
; R20 - регистр счетчика принятых байт
; ZH:ZL - регистр с адресом страницы и указатель на строку
; R1,R0 - используются с инструкцией spm
;********************************************************************

.nolist
.include "m168def.inc"
.list

.equ XTAL = 20000 ;частота генератора в кГц
.equ BAUD = 115200 ;необходимая скорость обмена в бит/с
.equ NB = ((10000*XTAL)/(16*BAUD)-5)/10

.def temp = R16 ;вспомогательный регистр

.cseg

.org $0000

jmp $1F10


.org $1F00 ; точка входа при RESET

cli ; Выключаем прерывания

;********************************************************************
; Проверка входа в BOOTLOADER хардова
;********************************************************************
cbi DDRC,2 ;Настраиваем пин на вход
sbi PORTC,2 ;ВЫключаем резистор подтяжки
sbiS PINC,2 ;Проверяем пин
jmp $0000 ;Если 0, то уходим в оснавную программу
;********************************************************************

.org $1F10 ; точка входа при Софтовом прыжке


ldi temp,low(RAMEND) ;инициализация стека
STS SPL,temp
ldi temp,high(RAMEND)
STS SPH,temp
clr temp ;задаем параметры USART: 115200, 8-N-1
STS UBRR0H,temp
ldi temp,NB
STS UBRR0L,temp
ldi temp,(1<<RXEN0)|(1<<TXEN0)
STS UCSR0B,temp
ldi temp,(1<<UCSZ00)|(1<<UCSZ01)
STS UCSR0C,temp

;********************************************************************
; Настройка портов для моргания светодиодов при входе в BOOTLOADER
;********************************************************************

ldi temp,(1<<PB3)|(1<<PB4) ; 0b00011000 - порты PВ3 и PB4
out DDRB, temp ; ; на выход
ldi temp,(1<<CS12)|(0<<CS11)|(1<<CS10); установка таймера (clk/1024)
sts TCCR1B,temp
;********************************************************************
; Тело BOOTLOADER
;********************************************************************

boot_loader:


rcall getc ;принимаем через порт команду
cpi r16,'D' ;если "D", то передаем строку
brne bl1
rjmp device_id ;подтверждения присутствия на линии
bl1:
cpi R16,'R' ;если "R", то завершение подпрограммы
brne bl2
jmp exit_boot ;и переход к старту основной программы
bl2:
cpi R16,'P' ;если "P", то переходим к
brne bl3
rjmp program_flash ;программированию страницы FLASH-памяти
;если принят иной символ, то возвращаем
bl3:
cpi R16,'V' ;если "V", то Выдаем версию
brne bl4
rjmp Version_id
bl4:
cpi R16,'S' ;если "S", то Выдаем сайт
brne bl5
rjmp Sait_id
bl5:
rjmp boot_loader

;********************************************************************
; Функции завершения работы BOOTLOADER
;********************************************************************
exit_boot:
cli
ldi r16,(1<<IVCE)
out MCUCR ,r16
ldi r16, (0<<IVSEL)
out MCUCR,r16
jmp $0000
ret
;********************************************************************
; Функции отправки опознования девайса
;********************************************************************
device_id:
ldi ZH,high(2*id_string);заносим в указатель Z адрес
ldi ZL,low(2*id_string) ;начала строки подтверждения
di1:
lpm r19,Z+ ;передаем символы до тех пор, пока
tst r19 ;не встретится 0 (конец строки)
breq boot_loader
rcall putc
rjmp di1

Sait_id:
ldi ZH,high(2*sait_string) ;заносим в указатель Z адрес
ldi ZL,low(2*sait_string) ;начала строки подтверждения
di2:
lpm r19,Z+ ;передаем символы до тех пор, пока
tst r19 ;не встретится 0 (конец строки)
breq boot_loader
rcall putc
rjmp di2

Version_id:
ldi ZH,high(2*version_string);заносим в указатель Z адрес
ldi ZL,low(2*version_string) ;начала строки подтверждения
di3:
lpm r19,Z+ ;передаем символы до тех пор, пока
tst r19 ;не встретится 0 (конец строки)
breq boot_loader
rcall putc
rjmp di3


;********************************************************************
; Подпрограмма передачи байта
; R19 - байт для передачи на входе в подпрограмму
;********************************************************************
putc:
LDs R16, UCSR0A
sbrs R16, UDRE0
rjmp putc ;данных передатчика USART
sts UDR0,R19 ;передаем байт данных
ret
;********************************************************************
; Подпрограмма приема байта
; R16 - принятый байт на выходе из подпрограммы
;********************************************************************
getc:
rcall Led
LDs R16, UCSR0A
sbrs R16, RXC0
rjmp getc
LDS R16,UDR0 ;переносим байт в рабочий регистр
ret
;********************************************************************
; Подпрограмма стерания страници памяти
;********************************************************************
erase_flash:
rcall get_adr
ldi R16,(1<<PGERS)|(1<<SELFPRGEN)
rcall do_spm ;стираем страницу
rcall put_ret ;отсылаем символ подтверждения "!"
rjmp boot_loader
;********************************************************************
; Подпрограмма приема адреса страницы
; ZH:ZL - принятый адрес на выходе из подпрограммы
;********************************************************************
get_adr:
rcall getc ;принимаем младший байт адреса страницы
mov ZL,R16
rcall getc ;принимаем старший байт адреса страницы
mov ZH,R16
ret
;********************************************************************
; Подпрограмма запуска команды spm
; R16 - байт для передачи кода в регистр SPMCR
;********************************************************************
do_spm:
in R17,SPMCsR ;ожидаем пока не закончится предыдущая
sbrc R17,SELFPRGEN ;операция
rjmp do_spm
ds1: sbic EECR,EEPE ;ожидаем пока не закончится запись
rjmp ds1 ;в EEPROM-память
out SPMCsR,R16 ;модифицируем регистр SPMCR
spm ;в течении 4-х циклов выполняем команду spm
ret
;********************************************************************
; Подпрограмма передачи символа подтверждения "!"
;********************************************************************
put_ret:
ldi R19,'!'
rcall putc
ret
;********************************************************************
; Подпрограмма програмирования страници Flash
;********************************************************************
program_flash:
rcall get_adr ;принемаем адрес страницы
ldi R16,(1<<PGERS)|(1<<SELFPRGEN)
rcall do_spm ;стираем страницу
ldi R18,PAGESIZE ;инициализируем счетчик слов
pf1: rcall getc ;принимаем младший байт кода
mov R0,R16
rcall getc ;принимаем старший байт кода
mov R1,R16
ldi R16,1<<SELFPRGEN
rcall do_spm ;заносим слово в буфер записи
adiw ZH:ZL,2
dec R18 ;повторяем 64 раза
brne pf1
subi ZL,PAGESIZE ;восстанавливаем адрес страницы
sbci ZH,0
ldi R16,(1<<PGWRT)|(1<<SELFPRGEN)
rcall do_spm ;записываем страницу
rcall put_ret ;отсылаем символ подтверждения "!"
rjmp boot_loader

;********************************************************************
;Функция моргания диодами
;********************************************************************
led:
lds temp,TCNT1L
lds temp,TCNT1H
sbrc temp,4
cbi portb,3
sbrc temp,4
cbi portb,4
sbrs temp,4
sbi portb,3
sbrs temp,4
sbi portb,4
ret
;********************************************************************
; Строки для отправки
;********************************************************************

version_string:
.db "BOOTLOADER "
sait_string:
.db "h "
id_string:
.db "R",0



Самое интересное, если из программы перейти в бут, то бут работает прекрасно, но выйти из него получается только после Хардового ресета.

После заливки основной программы и хардового ресета, основная программа запускается прекрасно и работает как положено.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 20:56:59 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
exit_boot:
...
jmp $0000 - как думаешь, куда будет произведен прыжок? попадаешь снова в бутлоадер.
ret - кстати его тут можно не ставить, управление сюда не попадет НИКОГДА.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 21:19:35 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс май 30, 2010 20:27:33
Сообщений: 63
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Alexeyslav писал(а):
exit_boot:
...
jmp $0000 - как думаешь, куда будет произведен прыжок? попадаешь снова в бутлоадер.
ret - кстати его тут можно не ставить, управление сюда не попадет НИКОГДА.



так это -
.org $0000

jmp $1F10

а после заливки основной программы, то в теории в нее или я заблуждаюсь?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 21:26:31 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 74
Зарегистрирован: Пн июн 18, 2012 12:01:04
Сообщений: 650
Откуда: Челябинская область, Копейск
Рейтинг сообщения: 0
Этой командой включаешь IVCE
Код:
 ldi r16,(1<<IVCE)
 out MCUCR ,r16

а этой командой отключаешь и IVSEL и IVCE
Код:
 ldi r16, (0<<IVSEL)
 out MCUCR,r16

сделай тогда так:
Код:
 ldi r16, (0<<IVSEL)|(1<<IVCE)
 out MCUCR,r16


PS: Да собственно оставь только это, что тоже самое
Код:
;********************************************************************
; Функции завершения работы BOOTLOADER
;********************************************************************
exit_boot:
 cli
 ldi r16,(1<<IVCE)
 out MCUCR ,r16
; ldi r16, (0<<IVSEL)
; out MCUCR,r16
 jmp $0000
 ret


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 22:16:21 
Друг Кота

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Вс дек 08, 2013 22:51:45 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс май 30, 2010 20:27:33
Сообщений: 63
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
смысл очень простой, камень зашивается и ставится в готовое изделие, пин С2 подтянут к 0 резистором постоянно, и только после этого зашивается основная программа, те этим переходом с 0000 адреса обратно в бут, я избавляю себя от того, чтобы лишний раз разберать готовое устройство. После первой же заливки основной программы, она перезаписывает область с адреса 0000 и тем самым, оставляет только аварийный вход в бут, через пин С2.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2013 17:13:32 
Грызет канифоль

Карма: 3
Рейтинг сообщений: 4
Зарегистрирован: Вт дек 03, 2013 11:04:04
Сообщений: 278
Откуда: Киев
Рейтинг сообщения: 0
Ребята - в виду того что я не нашел поиска по топику - подскажите ! можно ли как то аврс4 подружить с людским редактором как-то?
Много не прошу но банальный автокомплит и главное подсветку скобок хотябы .....?

_________________
Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Пт дек 13, 2013 17:52:29 
Это не хвост, это антенна
Аватар пользователя

Карма: 7
Рейтинг сообщений: 72
Зарегистрирован: Вт окт 28, 2008 09:00:18
Сообщений: 1438
Откуда: Украина, Харьков
Рейтинг сообщения: 0
Походу в 4 студии такого НИКАК не сделаешь.... Нигде в сети не пишется ни о каких скриптах на эту тему)

_________________
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Сб дек 14, 2013 18:33:01 
Открыл глаза

Зарегистрирован: Пн июн 10, 2013 14:39:50
Сообщений: 42
Рейтинг сообщения: 0
почему не может войти в программинг мод? как это исправить?
происходит довольно часто , особенно на маленьких бесконечных циклах
мк attiny13a, программатор avrisp mk2 clone


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Сб дек 14, 2013 20:53:52 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 12
Рейтинг сообщений: 67
Зарегистрирован: Пт авг 27, 2010 05:57:06
Сообщений: 2482
Откуда: Тюмень
Рейтинг сообщения: 0
kobzar Банальный и не банальный автокомплит можно получить из студии шестой.
Если нужен быстрый IDE пользуемся тем, что есть...
Либо переходим на квавр там даже из истории копирования можно код вставить.
mak36999 писал(а):
почему не может войти в программинг мод?

Возможно это происходит из–за того, что у вас запущен дебаггер? Ставьте на паузу, либо оставливайте перед программированием


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Сб дек 14, 2013 22:03:28 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 74
Зарегистрирован: Пн июн 18, 2012 12:01:04
Сообщений: 650
Откуда: Челябинская область, Копейск
Рейтинг сообщения: 0
kobzar писал(а):
... и главное подсветку скобок хотябы .....?

Можно сделать подсветку и скобок и цифор и стрингов, но почему-то конфигурация не сохраняется после закрытия студии.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR studio 4 в вопросах и ответах
СообщениеДобавлено: Сб дек 14, 2013 22:54:35 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 12
Рейтинг сообщений: 67
Зарегистрирован: Пт авг 27, 2010 05:57:06
Сообщений: 2482
Откуда: Тюмень
Рейтинг сообщения: 0
На семерке нужно сохранить файл конфигурации с правами администратора. Уже где то ранее упоминалось....
А вообще это не подсветка скобок, а расцветка.
Подсветкой я считаю выделение парной скобки при выделении или по приближению курсора проверяемой скобке. Так есть в шестой студии. Мало того, там еще есть автозакрытие новой рукописной скобки! То есть при открытии скобки всё что дальше пишешь уже находится в скобке. В КВавр есть подсветка пары.


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

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


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

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


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

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


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