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

Обсуждаем контроллеры компании Atmel.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Не поймет никак, поскольку в стандартном инклуднике эти дефайны определены и связаны с конкретными регистрами, что можно сделать самостоятельно и для ДРУГИХ регистров!
emax
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Пт мар 07, 2014 18:37:20
Откуда: Пермь

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

Сообщение emax »

так вот компилится

.def r16l = r16
.def r16h = r17

.macro ldwi
ldi @0l,low(@1)
ldi @0h,high(@1)
.endmacro

ldwi r16,0x1234

но это все регистры определить надо
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

Так то оно конечно, но для других регистровых пар уже работать не будет. Придется их всех (регистровых пар) определять. Тогда какой смысл в макросе?
Изображение
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение Kavka »

Может проще, таки, два регистра в макрос передать?
Во-первых, явно будет указано с чем работает макрос.
Во-вторых, регистры можно в разнобой передавать (в особо извращенских случаях :) ).
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

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

Сообщение Jack_A »

Дык теряется главное преимущество макроса - ленивость :) -- один символ накалякал, а он его раздраконил на два ( и более )
Изображение
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Так вынеси определения всех регистров в отдельный инклуд, подключи его в начале программы и делов. Место не занимает, дополнительный функционал радует.
BEST-83154
Прорезались зубы
Сообщения: 218
Зарегистрирован: Ср дек 02, 2015 15:06:01

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

Сообщение BEST-83154 »

вот тут вписан вольтметр,амперметр,ваттметр,таймер и разложения чисел
и мне хотелось бы видеть еще и замер емкости акб в А/Ч
кто может помогите!!!
Вложения
45.c
(5.22 КБ) 257 скачиваний
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

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

Сообщение Олегыч1 »

Приветствую уважаемые радиокоты. Практическое изучение программирования начал с программы Atmel Studio 6,0 . Если не ошибаюсь это и есть AVR studio. По аналогии с видеоуроком попытался скомпилировать файл (кнопкой Build) На что выскочила ошибка (прилагаю). Подскажите пожалуйста, что не так делаю...
========
С этим вопросом уже разобрался. Все дело было в названиях папок. Они должны быть на латиннице. Теперь другая проблема: в протеусе МК почему-то не работает по прошивке... не могу найти косяк, помогите пожалуйста. При этом указанный путь в протеусе на МК почему-то сам выставляется по умолчанию на другой... Прошивку прилагаю (файл hex).
Вложения
GccApplication1.hex
(447 байт) 135 скачиваний
сам код.c
(601 байт) 254 скачивания
Output-Build.txt
(981 байт) 112 скачиваний
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

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

Сообщение CB1 »

Ваша прошивка работает в Proteus. Да и код написан верно. Когда задаете вопрос указывайте какой микроконтроллер используете.
Скинте свой проект в Proteus-е.
Все гениальное - просто
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

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

Сообщение Олегыч1 »

МК Atmega8
Проект прилагаю
Вложения
1.rar
(20.03 КБ) 133 скачивания
c717411
Встал на лапы
Сообщения: 148
Зарегистрирован: Ср дек 29, 2010 21:19:03

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

Сообщение c717411 »

В цикле while должно быть так:

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

//Подать сигнал
PORTB = 0xFF


по ошибке - в путях видны крякозябры, уберите русские буквы из пути и имени файлов.
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

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

Сообщение Олегыч1 »

c717411, этот момент по крякозябрам я уже уяснил, все исправил. Спасибо. :wink: Но почему на данный момент (все нормально без ошибок компилируется) эта прошивка не заряжается в протеусе в атмегу8? Проект протеуса выложил пару сообщений назад по имени "1"
В цикле while должно быть так:
Код:
//Подать сигнал
PORTB = 0xFF
Но у меня так и есть там. Или что именно вы имеете в виду, не ставить точку с запятой в конце?
c717411
Встал на лапы
Сообщения: 148
Зарегистрирован: Ср дек 29, 2010 21:19:03

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

Сообщение c717411 »

Олегыч1 писал(а): Но у меня так и есть там.

нет, у Вас там

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

//Подать сигнал
DDRB = 0xFF;

ЗЫ: точку с запятой надо ставить, конечно )
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

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

Сообщение CB1 »

Это я что то внимательно не посмотрел Ваш код. С717411 правильно заметил, вот ваш код, который вы скидывали раньше:

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

int main(void)
{
   preset();
    while(1)
   {
      //Подать сигнал
      DDRB = 0xFF;
      //Выдержать время
      _delay_ms(1000);
      //Убрать сигнал
      PORTB = 0x00;
      //Выдержать время
      _delay_ms(1500);
      
      
      }
}      

А должно быть

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

int main(void)
{
   preset();
    while(1)
   {
      //Подать сигнал
      PORTB = 0xFF;
      //Выдержать время
      _delay_ms(1000);
      //Убрать сигнал
      PORTB = 0x00;
      //Выдержать время
      _delay_ms(1500);
      
      
      }
}      

Какой версией протеуса Вы пользуетесь? Какие видеоуроки смотрите?
Все гениальное - просто
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

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

Сообщение Олегыч1 »

исправил. Все тоже самое :? Видеоурок:
https://www.youtube.com/watch?v=u-iI6EDUtA4
Здесь кстати об этом упоминулось. Но у меня почему-то не получается запустить в протеусе свой МК по данному коду. Вернее видно, что код действует... Но светодиоды не горят. Не могу с землей понять как быть... Поставил батарейку, но светодиоды все равно не загораются...
Версия протеуса - 8
На всякий случай еще раз выложу конечный исправленный код
и проект протеуса по имени "2"
Вложения
2.rar
(15.92 КБ) 136 скачиваний
Исправленный код.c
(561 байт) 251 скачивание
c717411
Встал на лапы
Сообщения: 148
Зарегистрирован: Ср дек 29, 2010 21:19:03

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

Сообщение c717411 »

Все у Вас сделано теперь правильно и должно работать. Выкладывайте на будущее сразу в архиве проект протеуса, исходник и hex, ибо иногда лень или нечем компилировать.
При симуляции в протеусе резисторы в цепях диодов можно (даже нужно) не ставить, не надо загружать симулятор лишними деталями. Батарею тоже.
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

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

Сообщение CB1 »

Попробуйте 7 версию Proteus, мне кажется что у автора видеоуроков то же седьмая и сделайте все как у автора и должно заработать. Не могу сказать точно, но может в 8 есть какие то отличия мешающие запустить проект.
Все гениальное - просто
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Есть специальные цифровые резисторы. Но и это в протеусе без необходимости, там есть специальные логические пробники, выполняющие роль светодиодов.
Да, протеус моделирует своеобразно - состояние светодиодов фиксируется на момент события перерисовки экрана, которая происходит раз в 10 секунд примерно и какое состояние попадётся на момент перерисовки такое у него и будет до следующей - никаких полутонов от ШИМ-а а наблюдаемое беспорядочное моргание, поскольку внутреннее время симуляции является переменной величиной и постоянно меняется когда не хватает ресурсов для реального времени.

Из этого вытекает ещё одна причина по которой у вас схема может "не работать" - 1 секунда работы контроллера может запросто оказаться одной минутой(или вообще 30-ю минутами) в реальном времени симулятора из-за нехватки вычислительных ресурсов на симуляцию схемы - поэтому имейте за правило не использовать ЛИШНИХ деталей, особенно нелинейных как полупроводники, где это возможно используйте специально упрощённые модели компонентов - цифровой(digital) резистор для подтяжек и т.д.
Не уверен, но там кажется даже цифровые транзисторы есть.
Смотрите в строке состояния симулятора, там после запуска отображается внутреннее время симулируемой схемы, и если там бегут не секунды а десятые доли секунды или вообще миллисекунды - ваша схема слишком сложна для данного железа, нужен процессор помощнее но как правило это слабо помогает.

Если симуляция вообще не запускается, смотрите сообщения симулятора - обычно это признак проблемы в моделях или тонких настройках симуляции - модель не получается построить из-за отсутствия земли в изолированном участке схемы или симуляция начинается сразу с необходимости слишком малого шага по времени для обеспечения нужной точности в какой-то из моделей компонента используемого в схеме.
c717411
Встал на лапы
Сообщения: 148
Зарегистрирован: Ср дек 29, 2010 21:19:03

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

Сообщение c717411 »

Alexeyslav писал(а):Да, протеус моделирует своеобразно - состояние светодиодов фиксируется на момент события перерисовки экрана, которая происходит раз в 10 секунд примерно и какое состояние попадётся на момент перерисовки такое у него и будет до следующей - никаких полутонов от ШИМ-а а наблюдаемое беспорядочное моргание, поскольку внутреннее время симуляции является переменной величиной и постоянно меняется когда не хватает ресурсов для реального времени.

не пишите ерунду. Прочитал раза три Ваш пост, какая-то словесная диарея.
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

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

Сообщение CB1 »

В Poteus есть особенности в моделировании, он не всегда правильно и точно моделирует и это нужно учитывать. Конечно программы вроде той о которой мы говорили он моделирует правильно.
Все гениальное - просто
Ответить

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