AVR studio в вопросах и ответах
- Kill17
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 30, 2010 20:27:33
- Откуда: Санкт-Петербург
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
не сочтите за наглость, но осваивать асму начал 5 дней назад, можите превести пример кода?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
АСМ тут не причём. Полазайте в ДШ на Ваш МК и посмотрите как можно программно включать и отключать сторожевой таймер.
После работы бутлодыря включите его и зациклите навечно программу, сброс произойдёт сам.
После работы бутлодыря включите его и зациклите навечно программу, сброс произойдёт сам.
- Kill17
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 30, 2010 20:27:33
- Откуда: Санкт-Петербург
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Спасибо, уже в ДШ ползую, нашел по Спящую собаку главу, буду изучать 
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Собака эта хитрая, включить легко а остановить нужна строгая процедура, собственно она описана в даташите.
- Kill17
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 30, 2010 20:27:33
- Откуда: Санкт-Петербург
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
так, пробую
Один пень, при собакином ресете, камень виснет. Периферия не пашет до передергивания питания. Вообщем эффект такой же как при команде JMP $0000 Теряю надежду, помогите...
Код: Выделить всё
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 Теряю надежду, помогите...
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Значит все-таки программа глючит.
Поставь ловушки по ходу инициализации основной программы, например выводи в какой-то порт число от нуля и до 255 в каждой точке-ловушке если программа где-то повиснет, то на порту будет номер предшествовавшей этому ловушки. Может это натолкнет на какую-то мысль.
Поставь ловушки по ходу инициализации основной программы, например выводи в какой-то порт число от нуля и до 255 в каждой точке-ловушке если программа где-то повиснет, то на порту будет номер предшествовавшей этому ловушки. Может это натолкнет на какую-то мысль.
- Kill17
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 30, 2010 20:27:33
- Откуда: Санкт-Петербург
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
заливаю в качестве основной программы мигалку диодом, в ней ничего нету, кроме изменения одного пина на порту....
может я чего-то не понял, при ресети через собаку, перефирия и регистры должны сбрасываться или нет?
может я чего-то не понял, при ресети через собаку, перефирия и регистры должны сбрасываться или нет?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
А программа вообще переходит на нулевую метку?
Сейчас посмотрел даташит - она и не будет переходить. Когда у тебя активирован загрузчик(BOOTRST=0) то стартовый адрес переносится на адрес загрузчика и любые манипуляции со сбросом будут приводить именно туда.
Считай, что оттуда начинается твоя программа, просто с загрузчика когда он сделает своё дело - передай управление на программу. Можно всю инициализацию запихнуть в загрузчик, а программа в младших адресах будет состоять только из главного цикла. Вобщем, на ноль переходить не обязательно, можно перейти сразу на метку START не забыв перед этим проинициализировать стек.
Сейчас посмотрел даташит - она и не будет переходить. Когда у тебя активирован загрузчик(BOOTRST=0) то стартовый адрес переносится на адрес загрузчика и любые манипуляции со сбросом будут приводить именно туда.
Считай, что оттуда начинается твоя программа, просто с загрузчика когда он сделает своё дело - передай управление на программу. Можно всю инициализацию запихнуть в загрузчик, а программа в младших адресах будет состоять только из главного цикла. Вобщем, на ноль переходить не обязательно, можно перейти сразу на метку START не забыв перед этим проинициализировать стек.
- Kill17
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 30, 2010 20:27:33
- Откуда: Санкт-Петербург
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
вот программа, для общего понимания
; Подпрограмма загрузчик
;********************************************************************
; 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
Самое интересное, если из программы перейти в бут, то бут работает прекрасно, но выйти из него получается только после Хардового ресета.
После заливки основной программы и хардового ресета, основная программа запускается прекрасно и работает как положено.
Спойлер
;********************************************************************; Подпрограмма загрузчик
;********************************************************************
; 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
Самое интересное, если из программы перейти в бут, то бут работает прекрасно, но выйти из него получается только после Хардового ресета.
После заливки основной программы и хардового ресета, основная программа запускается прекрасно и работает как положено.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
exit_boot:
...
jmp $0000 - как думаешь, куда будет произведен прыжок? попадаешь снова в бутлоадер.
ret - кстати его тут можно не ставить, управление сюда не попадет НИКОГДА.
...
jmp $0000 - как думаешь, куда будет произведен прыжок? попадаешь снова в бутлоадер.
ret - кстати его тут можно не ставить, управление сюда не попадет НИКОГДА.
- Kill17
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 30, 2010 20:27:33
- Откуда: Санкт-Петербург
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Alexeyslav писал(а):exit_boot:
...
jmp $0000 - как думаешь, куда будет произведен прыжок? попадаешь снова в бутлоадер.
ret - кстати его тут можно не ставить, управление сюда не попадет НИКОГДА.
так это -
.org $0000
jmp $1F10
а после заливки основной программы, то в теории в нее или я заблуждаюсь?
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: AVR studio 4 в вопросах и ответах
Этой командой включаешь IVCE
а этой командой отключаешь и IVSEL и IVCE
сделай тогда так:
PS: Да собственно оставь только это, что тоже самое
Код: Выделить всё
ldi r16,(1<<IVCE)
out MCUCR ,r16
а этой командой отключаешь и IVSEL и IVCE
Код: Выделить всё
ldi r16, (0<<IVSEL)
out MCUCR,r16сделай тогда так:
Код: Выделить всё
ldi r16, (0<<IVSEL)|(1<<IVCE)
out MCUCR,r16PS: Да собственно оставь только это, что тоже самое
Код: Выделить всё
;********************************************************************
; Функции завершения работы BOOTLOADER
;********************************************************************
exit_boot:
cli
ldi r16,(1<<IVCE)
out MCUCR ,r16
; ldi r16, (0<<IVSEL)
; out MCUCR,r16
jmp $0000
ret
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
У тебя сейчас сделано так что по сбросу, что по переходу на адрес $0000 ты попадаешь в обработчик загрузчика. смысл?
- Kill17
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 30, 2010 20:27:33
- Откуда: Санкт-Петербург
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
смысл очень простой, камень зашивается и ставится в готовое изделие, пин С2 подтянут к 0 резистором постоянно, и только после этого зашивается основная программа, те этим переходом с 0000 адреса обратно в бут, я избавляю себя от того, чтобы лишний раз разберать готовое устройство. После первой же заливки основной программы, она перезаписывает область с адреса 0000 и тем самым, оставляет только аварийный вход в бут, через пин С2.
-
kobzar
- Грызет канифоль
- Сообщения: 278
- Зарегистрирован: Вт дек 03, 2013 11:04:04
- Откуда: Киев
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Ребята - в виду того что я не нашел поиска по топику - подскажите ! можно ли как то аврс4 подружить с людским редактором как-то?
Много не прошу но банальный автокомплит и главное подсветку скобок хотябы .....?
Много не прошу но банальный автокомплит и главное подсветку скобок хотябы .....?
Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости
- Dr. Alex
- Это не хвост, это антенна
- Сообщения: 1438
- Зарегистрирован: Вт окт 28, 2008 09:00:18
- Откуда: Украина, Харьков
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Походу в 4 студии такого НИКАК не сделаешь.... Нигде в сети не пишется ни о каких скриптах на эту тему)
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
Re: AVR studio 4 в вопросах и ответах
почему не может войти в программинг мод? как это исправить?
происходит довольно часто , особенно на маленьких бесконечных циклах
мк attiny13a, программатор avrisp mk2 clone
происходит довольно часто , особенно на маленьких бесконечных циклах
мк attiny13a, программатор avrisp mk2 clone
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
kobzar Банальный и не банальный автокомплит можно получить из студии шестой.
Если нужен быстрый IDE пользуемся тем, что есть...
Либо переходим на квавр там даже из истории копирования можно код вставить.
Возможно это происходит из–за того, что у вас запущен дебаггер? Ставьте на паузу, либо оставливайте перед программированием
Если нужен быстрый IDE пользуемся тем, что есть...
Либо переходим на квавр там даже из истории копирования можно код вставить.
mak36999 писал(а):почему не может войти в программинг мод?
Возможно это происходит из–за того, что у вас запущен дебаггер? Ставьте на паузу, либо оставливайте перед программированием
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: AVR studio 4 в вопросах и ответах
kobzar писал(а):... и главное подсветку скобок хотябы .....?
Можно сделать подсветку и скобок и цифор и стрингов, но почему-то конфигурация не сохраняется после закрытия студии.
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
На семерке нужно сохранить файл конфигурации с правами администратора. Уже где то ранее упоминалось....
А вообще это не подсветка скобок, а расцветка.
Подсветкой я считаю выделение парной скобки при выделении или по приближению курсора проверяемой скобке. Так есть в шестой студии. Мало того, там еще есть автозакрытие новой рукописной скобки! То есть при открытии скобки всё что дальше пишешь уже находится в скобке. В КВавр есть подсветка пары.
А вообще это не подсветка скобок, а расцветка.
Подсветкой я считаю выделение парной скобки при выделении или по приближению курсора проверяемой скобке. Так есть в шестой студии. Мало того, там еще есть автозакрытие новой рукописной скобки! То есть при открытии скобки всё что дальше пишешь уже находится в скобке. В КВавр есть подсветка пары.