AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: AVR studio 4 в вопросах и ответах

Сообщение a_skr »

У Вас выключена оптимизация (-O0)!

для использования функций _delay_ms() и _delay_us() оптимизация должна быть включена, иначе они сожрут всю память и не факт, что будут работать, как надо.

In order for these functions to work as intended, compiler optimizations must be enabled, and the delay time must be an expression that is a known constant at compile-time. If these requirements are not met, the resulting delay will be much longer (and basically unpredictable), and applications that otherwise do not use floating-point calculations will experience severe code bloat by the floating-point library routines linked into the application.
Аватара пользователя
Kill17
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс май 30, 2010 20:27:33
Откуда: Санкт-Петербург
Контактная информация:

Re: AVR studio 4 в вопросах и ответах

Сообщение Kill17 »

угу, то есть организовать побитную передачу, в принципе я так и делал, хорошо, с этим понятно. А прием как ?
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: AVR studio 4 в вопросах и ответах

Сообщение FreshMan »

a_skr писал(а):У Вас выключена оптимизация (-O0)!

включил
все удачно скомпилилось
но хотелось бы понять для себя, по простому, почему ф-ция задержки не работает при отключенной оптимизации ?
Tell Me The Truth
Аватара пользователя
ИС-пытатель
Вымогатель припоя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Re: AVR studio 4 в вопросах и ответах

Сообщение ИС-пытатель »

Kill17 писал(а):А прием как ?

аналогично. отслеживаете в цикле приход 0 (старт бит)
делаете половинную задержку (чтобы попасть на середину импульса)
А потом через каждую полную задержку считываете состояние порта и добавляете их в регистр памяти со сдвигом
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: AVR studio 4 в вопросах и ответах

Сообщение a_skr »

FreshMan, посмотрите на код _delay_ms():
Спойлер

Код: Выделить всё

void
_delay_ms(double __ms)
{
   uint16_t __ticks;
   double __tmp = ((F_CPU) / 4e3) * __ms;
   if (__tmp < 1.0)
      __ticks = 1;
   else if (__tmp > 65535)
   {
      //   __ticks = requested delay in 1/10 ms
      __ticks = (uint16_t) (__ms * 10.0);
      while(__ticks)
      {
         // wait 1/10 ms
         _delay_loop_2(((F_CPU) / 4e3) / 10);
         __ticks --;
      }
      return;
   }
   else
      __ticks = (uint16_t)__tmp;
   _delay_loop_2(__ticks);
}
- сплошная плавающая арифметика. Без оптимизации все будет скомпилировано "как есть", с подключением плавающей точки. Что и вынесет всю память и задержку еще увеличит. Если включена оптимизация, и аргументом функции является константа (а это тоже необходимое условие), то компилятор сам все посчитает и соптимизирует код до нескольких(или до одного) пустых циклов с вычисленными заранее значениями счетчиков. Если оптимизацию включить, но передавать в функцию не константу, а значение переменной, то толку тоже не будет, т.к. опять все вычисления будут в процессе выполнения с использованием плавающей точки.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: AVR studio 4 в вопросах и ответах

Сообщение FreshMan »

пытаюсь выловит баг в проге
после выполнения тела обработчика прерывания рабочая точка с какого то дуру прыгает ПРЯМО сюда
Изображение
mode_button я нигде принудительно в ноль не выставлял !
это шшо баг студии или баг моей проги ?
как понять ?
Tell Me The Truth
Аватара пользователя
*скрыто*
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Пн дек 31, 2012 13:16:59

Re: AVR studio 4 в вопросах и ответах

Сообщение *скрыто* »

avr studio 4.18
как сделать чтобы РОН отображались в симуляторе ?
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: AVR studio 4 в вопросах и ответах

Сообщение Jack_A »

Элементарно, Ватсон. View - Register
Аватара пользователя
*скрыто*
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Пн дек 31, 2012 13:16:59

Re: AVR studio 4 в вопросах и ответах

Сообщение *скрыто* »

все получилось
Айвен
Родился
Сообщения: 1
Зарегистрирован: Сб май 10, 2014 11:48:13

AVR studio 4, assembler помогите победить ошибку

Сообщение Айвен »

Для Atmega128 пишу программу, скажем для "домофона". Только учусь. Возникла проблема, на которую не могу найти конкретного решения. Смотрел по темам- подобное находил но проблему они, к сожалению, не решали. Вот что пишу:

Код: Выделить всё

".include "m128def.inc"
 
.def temp = r16     
.def knopa = r17     
.def counter = r20
.def vizg = r21

.set TOP1slope = 6249           
                                   
.set TOP2slope = 23424         
.set TOPdelay = 1563   


rjmp RESET                 
.org INT0addr
rjmp SIGNAL                 
                                     
.org OC1Aaddr
rjmp T1_Compare1A           
.org OC0addr
rjmp T0_Compare0_launch               


RESET:


ldi temp, high(RAMEND)
out SPH, temp
ldi temp, low(RAMEND)
out SPL, temp

data:
   .DB 0b00000000 , 0                 ;0
   .DB 0b00000001 , 0                 ;1   !!!!!!!<--- в данном месте
   .DB 0b00000010 , 0                 ;2
   .DB 0b00000011 , 0                 ;3
   .DB 0b00000100 , 0                 ;4
   .DB 0b00000101 , 0                 ;5
   .DB 0b00000110 , 0                 ;6
   .DB 0b00000111 , 0                 ;7
   .DB 0b00001000 , 0                 ;8
   .DB 0b00001001 , 0                 ;9
   .DB 0b00001010 , 1                 ;ключ
   .DB 0b00001100 , 1                 ;звонок
   .DB 0b00001101 , 1                 ;сброс



clr temp
out DDRC, temp                               
cbi DDRD, DDD0                             
 sbi DDRB, DDB0     
                     
ldi temp, (1<<INT0)   
out EIMSK, temp                           
ldi temp, (1<<ISC01)|(1<<ISC00)
sts EICRA, temp                         
sei                                       

MAIN:                                       
rjmp MAIN"


Вот выдержка из программы. Когда пробую проверить работоспособность программы, на моменте ".DB 0b00000001 , 0 " выдает ошибку
"AVR Simulator: Invalid opcode 0x0001 at address 0x000024". Подскажите пожалуйста как же ее можно побороть.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: AVR studio 4, assembler помогите победить ошибку

Сообщение Kavka »

У тебя управление попадает в секцию с данными!
Оно тебе надо так? :))
Или вынеси данные заведомо за область выполнения кода, или "перепрыгнуть" данные можно.

Спойлер

Код: Выделить всё

jmp skip_data

data:
   .DB 0b00000000 , 0                 ;0
   .DB 0b00000001 , 0                 ;1   !!!!!!!<--- в данном месте
   .DB 0b00000010 , 0                 ;2
   .DB 0b00000011 , 0                 ;3
   .DB 0b00000100 , 0                 ;4
   .DB 0b00000101 , 0                 ;5
   .DB 0b00000110 , 0                 ;6
   .DB 0b00000111 , 0                 ;7
   .DB 0b00001000 , 0                 ;8
   .DB 0b00001001 , 0                 ;9
   .DB 0b00001010 , 1                 ;ключ
   .DB 0b00001100 , 1                 ;звонок
   .DB 0b00001101 , 1                 ;сброс

skip_data:
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: AVR studio 4 в вопросах и ответах

Сообщение FreshMan »

интересует такое вопрос: раз студия бесплатная то почему компания не сделает натурпродукт под линукс ?
Tell Me The Truth
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: AVR studio 4 в вопросах и ответах

Сообщение BOB51 »

Скажи "СПАСИБО", что 4.19 ПОКА еще бесплатная... :cry:
А 6-я основана на компонентах микрософта - без оных работать не будет в принципе. :kill: :kill: :kill:
Это "привязка" к продукту, абы не соскочили. 8)
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: AVR studio 4 в вопросах и ответах

Сообщение Kavka »

FreshMan, они дают AVR toolchain под линукс. А редакторов (сред разработки) под линкус и так хватает. Ну, разве что, с симулятором не так всё гладко.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: AVR studio 4 в вопросах и ответах

Сообщение FreshMan »

Kavka писал(а):Ну, разве что, с симулятором не так всё гладко.

в этом то и проблемма :(
Tell Me The Truth
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: AVR studio 4 в вопросах и ответах

Сообщение FreshMan »

как во время отладки симитировать нажатие кнопки ?
Tell Me The Truth
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: AVR studio 4 в вопросах и ответах

Сообщение ARV »

протеусом :)))

а в студии установкой битика в регистре PINx в нужный момент отладки. либо составлением stimuli-файла и загрузки его в отладчик (довольно муторная и негибкая штука). я об этом писал вот здесь: http://www.simple-devices.ru/attachment ... 7-2010.pdf и здесь: http://www.simple-devices.ru/attachment ... 8-2010.pdf
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: AVR studio 4 в вопросах и ответах

Сообщение FreshMan »

как в режиме пошаговой отладки сделать несколько шагов назад ?
Tell Me The Truth
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: AVR studio 4 в вопросах и ответах

Сообщение Alexeyslav »

Никак. Это все равно что фарш обратно в мясо прокрутить.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: AVR studio 4 в вопросах и ответах

Сообщение FreshMan »

фигово :(
у меня на 16 секунде глюк сидит
каждый раз запускать и ждать столько времени не очень-то и радостно :)
Tell Me The Truth
Ответить

Вернуться в «AVR»