AVR studio в вопросах и ответах
-
warrior2031
- Первый раз сказал Мяу!
- Сообщения: 30
- Зарегистрирован: Чт апр 22, 2010 13:06:03
Re: AVR studio 4 в вопросах и ответах
Отлаживаю программу в AVR studio 4 и возникла такая ситуация.
В AVR studio часть программы работает как надо, т.е. я её пошагово прогнал, всё нормально. В регистрах и портах нужные значения и т.п.
Рассматриваю сейчас часть программы где просто динамическая индикация идет.
Когда я симулирую её в Proteus, то там начинаются глюки в зависимости от частоты на которой работает процессор. Там некие биты указываются, отвечающие за эту самую частоту. Почему так может быть, что на intRC=1MHz всё работает более или менее, а на 4MHz уже отображает на дисплее не то.
И даже когда, вроде, отображается нормально происходит следующий момент. Вот в программе последовательно активизируется четыре разряда индикации. В AVR studio всё как и написано в программе происходит. Но в Proteus он может перескакивать разяды.
Может это быть связано со сторожевым таймером?
Почему так может быть? В чем может быть ошибка?
Контроллер - atmega8.
В AVR studio часть программы работает как надо, т.е. я её пошагово прогнал, всё нормально. В регистрах и портах нужные значения и т.п.
Рассматриваю сейчас часть программы где просто динамическая индикация идет.
Когда я симулирую её в Proteus, то там начинаются глюки в зависимости от частоты на которой работает процессор. Там некие биты указываются, отвечающие за эту самую частоту. Почему так может быть, что на intRC=1MHz всё работает более или менее, а на 4MHz уже отображает на дисплее не то.
И даже когда, вроде, отображается нормально происходит следующий момент. Вот в программе последовательно активизируется четыре разряда индикации. В AVR studio всё как и написано в программе происходит. Но в Proteus он может перескакивать разяды.
Может это быть связано со сторожевым таймером?
Почему так может быть? В чем может быть ошибка?
Контроллер - atmega8.
I know what you're thinking. "Did he fire six shots or only five?"...
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Мне кажется этот вопрос надо перенаправить в тему по консервусу. Не было у меня лично ни каких бед, пока не попробовал этот злополучный продукт. И нет сейчас никаких бед, потому как больше не употребляю.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
-
warrior2031
- Первый раз сказал Мяу!
- Сообщения: 30
- Зарегистрирован: Чт апр 22, 2010 13:06:03
Re: AVR studio 4 в вопросах и ответах
Спасибо за быстрый ответ.
А в чем Вы бы предложили схему смоделировать для AVR?
Или это всё же не совсем правильно и надо проверять на железе?
А в чем Вы бы предложили схему смоделировать для AVR?
Или это всё же не совсем правильно и надо проверять на железе?
I know what you're thinking. "Did he fire six shots or only five?"...
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Re: AVR studio 4 в вопросах и ответах
Только "ЖЕЛЕЗО"!
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Pooher, а голову к железу? 
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Re: AVR studio 4 в вопросах и ответах
Ну, это если имеется 
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
уж что-что, а динамическую индикацию протеус нормально позволяет отладить - не надо катить на него бочку в этом вопросе
вот WDT он так и не умеет нормально эмулировать (во всяком случае в известной мне версии)...
просто где-то в программе есть ошибка.
просто где-то в программе есть ошибка.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
и все же ...
"Истина в железе"
"Истина в железе"

- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
истина где-то там...
просто когда в железе не заработало - не так-то уж и просто найти место в программе, которое не дает работать
просто когда в железе не заработало - не так-то уж и просто найти место в программе, которое не дает работать
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Согласен на все 100%
-
warrior2031
- Первый раз сказал Мяу!
- Сообщения: 30
- Зарегистрирован: Чт апр 22, 2010 13:06:03
Re: AVR studio 4 в вопросах и ответах
ARV писал(а):уж что-что, а динамическую индикацию протеус нормально позволяет отладить - не надо катить на него бочку в этом вопросевот WDT он так и не умеет нормально эмулировать (во всяком случае в известной мне версии)...
просто где-то в программе есть ошибка.
Вот складывается впечатление, что на ресет, что ли, по сторожевому таймеру уходит, и из-за этого индикация сбивается. Там не просто индикация, там ещё небольшие вычисления тоже происходят, кстати.
В AVR Studio я проверял полностью эту подпрограмму - все по порядку идет, WDT не срабатывает.
I know what you're thinking. "Did he fire six shots or only five?"...
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
А прерывания не "мешают"? Или совсем не используете?
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
-
warrior2031
- Первый раз сказал Мяу!
- Сообщения: 30
- Зарегистрирован: Чт апр 22, 2010 13:06:03
Re: AVR studio 4 в вопросах и ответах
В общей программе у меня есть одно внешнее прерывание. Но сбивается и без него.
Не понимаю, почему это зависит от частоты внутреннего RC генератора. Например, при повышении частоты может пропасть точка на индикаторе или начинает светиться сегмент G у индикатора, хотя на порту единицы на этой линии нет. Т.е. ко всему ещё и индикатор как бы "глючит". В порту все правильно, а на нем появляется всякое нехорошее.
Просто если это будет реализовано до конечного устройства, то будет использован индикатор со встроенными регистрами. Динамической индикации как таковой не будет. Будет просто запись в буфер как бы. Но мне в общем и целом хотелось бы посмотреть на работу программы, поэтому сделал динамическую.
Кстати, если уж на то пошло. А как бы мне проверить обрабатывается ли внешнее прерывание?
Я настроил их на прерывания по INT0 по нарастающему фронту, например. Правильно понимаю, если я единицу запишу в AVR Studio на int0 в дебаге, то он должен на обработчик вн. прерывания перейти?
Не понимаю, почему это зависит от частоты внутреннего RC генератора. Например, при повышении частоты может пропасть точка на индикаторе или начинает светиться сегмент G у индикатора, хотя на порту единицы на этой линии нет. Т.е. ко всему ещё и индикатор как бы "глючит". В порту все правильно, а на нем появляется всякое нехорошее.
Просто если это будет реализовано до конечного устройства, то будет использован индикатор со встроенными регистрами. Динамической индикации как таковой не будет. Будет просто запись в буфер как бы. Но мне в общем и целом хотелось бы посмотреть на работу программы, поэтому сделал динамическую.
Кстати, если уж на то пошло. А как бы мне проверить обрабатывается ли внешнее прерывание?
Я настроил их на прерывания по INT0 по нарастающему фронту, например. Правильно понимаю, если я единицу запишу в AVR Studio на int0 в дебаге, то он должен на обработчик вн. прерывания перейти?
I know what you're thinking. "Did he fire six shots or only five?"...
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
...you've got to ask yourself one question: "Do I feel lucky?" Well, do ya, punk?
Re: AVR studio 4 в вопросах и ответах
Пришло время мне сделать проект на С. Помогите пожалуйста организовать передачу данных 8-10 регистров и участка памяти в 16 байт из ассемблерной части в сишную и наоборот. Как это организовать?
Можно, конечно, по прямой адресации в памяти, но меня учили (еще на Турбо С и MASM) и говорили, что это нехорошо, мало ли что, когда сишному компилятору захочется поменять адрес своей переменной, а тут я, с прямой адресацией... Есть ли другие способы?
Можно, конечно, по прямой адресации в памяти, но меня учили (еще на Турбо С и MASM) и говорили, что это нехорошо, мало ли что, когда сишному компилятору захочется поменять адрес своей переменной, а тут я, с прямой адресацией... Есть ли другие способы?
...Им бы пить и жрать в три горла день и ночь,
Будь ты трижды гений - им нельзя помочь...
\\Ария\\Игра с огнем
Будь ты трижды гений - им нельзя помочь...
\\Ария\\Игра с огнем
Re: AVR studio 4 в вопросах и ответах
Блин, сам прочитал и не понял что написал
Короче говоря есть готовая программа на ASM , в нее надо вставить пересчет формулы на Си. Формула довольно сложная и использует много переменных, которые получены из портов в программе на АСМ. Вариант с перекомпиляцией формулы в АСМ даже рассматривать не хочу, поскольку она будет немного меняться от прошивки к прошивке, и естественно, каждый раз ее пересматривать....сами понимаете...
Поэтому вижу выход:
1. Сделать прогу на си (самого си кода будет 5-6%)
2. Оставить все как есть в ASM, и добавить Си (не вижу как это практически реализовать, под AVR Studio)
Поэтому вижу выход:
1. Сделать прогу на си (самого си кода будет 5-6%)
2. Оставить все как есть в ASM, и добавить Си (не вижу как это практически реализовать, под AVR Studio)
...Им бы пить и жрать в три горла день и ночь,
Будь ты трижды гений - им нельзя помочь...
\\Ария\\Игра с огнем
Будь ты трижды гений - им нельзя помочь...
\\Ария\\Игра с огнем
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
первый вариант
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: AVR studio 4 в вопросах и ответах
Нашел немного инфы. В СAVR есть спецификация -х assembler-with-cpp. При этом код выглядит следующим образом:
Очень похоже на АСМ с Си, а не наоборот, думаю, этот вариант мне подойдет, попробую, по крайней мере...
Код: Выделить всё
#include <avr/io.h> ; Note [1]
work = 16 ; Note [2]
tmp = 17
.....
main:
rcall ioinit
1:
rjmp 1b ; Note [6]
.global TIMER0_OVF_vect ; Note [7]
TIMER0_OVF_vect:
ldi inttmp, 256 - tmconst + fuzz
out _SFR_IO_ADDR(TCNT0), inttmp ; Note [8]
in intsav, _SFR_IO_ADDR(SREG) ; Note [9]
sbic _SFR_IO_ADDR(PORTD), SQUARE
rjmp 1f
sbi _SFR_IO_ADDR(PORTD), SQUARE
rjmp 2f
1: cbi _SFR_IO_ADDR(PORTD), SQUARE
Очень похоже на АСМ с Си, а не наоборот, думаю, этот вариант мне подойдет, попробую, по крайней мере...
...Им бы пить и жрать в три горла день и ночь,
Будь ты трижды гений - им нельзя помочь...
\\Ария\\Игра с огнем
Будь ты трижды гений - им нельзя помочь...
\\Ария\\Игра с огнем
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: AVR studio 4 в вопросах и ответах
вроде бы это асм. правда первая строчка немного смущает.я не пробовал использовать # вместо "." а сейчас нет возможности проверить.
Ставим плюсы: )
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
ibiza11 писал(а):вроде бы это асм. правда первая строчка немного смущает.я не пробовал использовать # вместо "." а сейчас нет возможности проверить.
вроде бы это не CVAVR, а WinAVR, и, судя по всему, именно ассемблер. синтаксис текста характерен именно для ассемблерных модулей WinAVR, а так же опции с большим количеством дефисов - это в GCC принято (а для CVAVR вообще команданя строка определена где-нибудь?)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
Shurf
- Встал на лапы
- Сообщения: 83
- Зарегистрирован: Ср май 12, 2010 10:24:41
- Откуда: Чувашия, Новочебоксарск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Решил помигать светодиодом так:
При этом компилятор AVRStudio сказал:
Тогда я решил применить свои программерские навывки и написал так:
На что компилятор показал свои компиляторские навыки:
Вот сижу и думаю - откуда?
Если убрать count++ то код опять становится маленьким.
Вот сижу и думаю - как грамотно сделать инкремент в программировании для МК? Что вообще не так?
Код: Выделить всё
//tiny2313
#define F_CPU 4000000UL
#include <avr/io.h>
#include <util/delay.h>
int main (void)
{
DDRD = 0x01;
for(;;)
{
PORTD += 1;
_delay_ms(1000);
}
return 1;
}При этом компилятор AVRStudio сказал:
Код: Выделить всё
Device: attiny2313
Program: 86 bytes (4.2% Full)
(.text + .data + .bootloader)
Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)
Тогда я решил применить свои программерские навывки и написал так:
Код: Выделить всё
//tiny2313
#define F_CPU 4000000UL
#include <avr/io.h>
#include <util/delay.h>
int main (void)
{
int count = 1;
DDRD = 0x01;
for(;;)
{
count++;
if (count>=100) count=1;
PORTD += 1;
_delay_ms(10*count);
}
return 1;
}
На что компилятор показал свои компиляторские навыки:
Код: Выделить всё
AVR Memory Usage
----------
Device: attiny2313
Program: 3668 bytes (179.1% Full)
(.text + .data + .bootloader)
Data: 264 bytes (206.3% Full)
(.data + .bss + .noinit)
Вот сижу и думаю - откуда?
Если убрать count++ то код опять становится маленьким.
Вот сижу и думаю - как грамотно сделать инкремент в программировании для МК? Что вообще не так?
