Обсуждаем контроллеры компании Atmel.
Ответить

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

Пн фев 27, 2017 21:55:24

a.garkin писал(а):отдельное спасибо

Да пожалуйста) Кнопочки всякие знаешь где есть)

a.garkin писал(а):Видимо у тиньки есть баг

Очень неоднозначно. Может и правда в ней, а может компилятор чудит.

ARV писал(а):или теперь уже Микрочип?

Не дождётесь! 8)

ARV писал(а):в собственном коде.

Что интересно, баг в том, что после ресета происходит инициализация таймера значением которое было в нём до ресета... То есть код тут вроде как и не причём...

Например, инициализируем таймер с регистром:
OCR0A=0x00;
Далее в программе меняем значение регистра на
OCR0A=0x19;
Перезагружаем контроллер/снимаем питание, включаем, и...
таймер запускается с:
OCR0A=0x19;
Но он же инициализируется в начале программы:
OCR0A=0x00;
Откуда он берёт OCR0A=0x19;

Подскажи, где баг в НАШЕМ коде?

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

Вт фев 28, 2017 06:30:00

AndTer писал(а):таймер запускается с:
OCR0A=0x19;
Но он же инициализируется в начале программы:
OCR0A=0x00;
Откуда он берёт OCR0A=0x19;

При инициализации вы в него записываете именно 0x19.
Код:
// Timer/Counter 0 initialization
// Timer/Counter 0 initialization
TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (1<<CS00);
TCNT0=0x00;
OCR0A=0x19;
OCR0B=0x00;

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

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

Вт фев 28, 2017 07:08:56

AndTer писал(а):Перезагружаем контроллер/снимаем питание, включаем, и...
таймер запускается с:
OCR0A=0x19;
В каком месте кода Вы определили что OCR0A==0x19? Вы в курсе что некоторые регистры, в том числе OCR0A, имеют буферный (теневой) регистр?

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

Вт фев 28, 2017 08:19:26

COKPOWEHEU писал(а):При инициализации вы в него записываете именно 0x19.

"Чукча не читатель, чукча писатель" (с)
Вот в случае как в итоге сделано, работает нормально.
А если инициализировать его с нулями, то происходит такая хрень.
Я не спрашивал как ловить баг. Я спросил, ткните меня носом где у МЕНЯ ошибка! Ибо чуть выше нам сказали что это мы якобы накосячили.

Z_h_e писал(а):В каком месте кода Вы определили что OCR0A==0x19?

Это определяется по заполнению ШИМа как в симуляторе так и в железе!
При чём тут буферный регистр? Вы прочли описание бага?

Повторюсь, если инициализировать таймер OCR0A значением x0, всё запускается правильно, далее нажав на кнопку, значение программно изменится на x19(жмём сколько угодно раз, всё меняется по кругу, как положено), оставляем например на x19(это видно по физическому выходу ШИМа, а не по регистрам) снимаем питание, подаём снова, а ШИМ генерируется с x19 когда должно быть x0 ибо инициализация проходит с x0!

Или снова непонятно? Не знаю уже как обьяснить...

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

Вт фев 28, 2017 09:39:40

AndTer писал(а):При чём тут буферный регистр? Вы прочли описание бага?
Ну тут тогда видимо два варианта. Почитать все-таки про буферные регистры OCR или писать в Микрочип про баги доставшиеся им от Атмела :wink: .
Последний раз редактировалось Z_h_e Вт фев 28, 2017 09:43:56, всего редактировалось 2 раз(а).

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

Вт фев 28, 2017 09:41:58

AndTer писал(а):Очень неоднозначно. Может и правда в ней, а может компилятор чудит
про компилятор не буду говорить - не знаю. а в тиньке я практически уверен. а в том, как вы ставите эксперименты - нет. многие "открытия" (кстати, и без кавычек тоже) делаются именно благодаря неправильно поставленному эксперименту.

AndTer писал(а):Не дождётесь!
чего дожидаться-то?
Изображение
как бы куплен давно уже Микрочипом...

AndTer писал(а):Подскажи, где баг в НАШЕМ коде?

не хочу бесплатно :)))
Вложения
screenshot000.jpg
(76.67 KiB) Скачиваний: 764

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

Вт фев 28, 2017 15:31:47

Z_h_e писал(а):Почитать все-таки про буферные регистры

Т.е. они энергонезависимые и не дают в себя писать при инициализации МК?

ARV писал(а):а в тиньке я практически уверен. а в том, как вы ставите эксперименты - нет.

Никаких экспериментов, на предыдущей странице код. И описание бага на этой.

ARV писал(а):не хочу бесплатно :)))

Да просто не способен найти ошибку)

Были заданы конкретные вопросы, но почему то идёт флуд и пустая болтовня...
Здесь частенько встречаются болтуны которые только на словах что то могут, а на деле сразу сливаются...
Кому нечего написать по делу, идите в МЯУ!
:beer:

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

Пт мар 24, 2017 21:07:25

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

код имеем такой
есть прерывание
interrupt [ADC_INT] void adc_isr(void)
{
adc_data=ADCH;
}


и в главном цикле вот это написано
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (1<<ADIE) | (1<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
SFIOR=(0<<ACME);
ADMUX=5 | ADC_VREF_TYPE;

в итоге преобразование почему то само стартует, выполняется прерывание, и я получаю результат преобразования

пс: пока что проверяю в протеусе, в железе не собирал

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

Пт мар 24, 2017 21:16:43

AndTer писал(а):Да просто не способен найти ошибку
AndTer писал(а):Кому нечего написать по делу, идите в МЯУ
предлагаю разрешить спор по-джентльменски, дуэлью: вы переводите на мой счет (я укажу в ЛС) 1000 рублей и присылаете архив с вашим проектом. если за три дня я не разберусь, в чем причина - верну вдвое больше.

Если вы отказываетесь от этих условий, то признаете своё полное поражение и должны извиниться за обвинение меня в том, что я не способен и т.п.

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

Пт мар 24, 2017 21:57:53

чуть чуть разобрался, а точнее ещё больше запутался
запускается преобразование само как только я пишу команду #asm("sleep"); где блин взаимосвязь тут?

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

Пт мар 24, 2017 23:31:10

ARV писал(а):вы переводите на мой счет (я укажу в ЛС) 1000 рублей
Если вы отказываетесь от этих условий

Я помог тут человеку с прошивкой бесплатно, потратив 5 минут. Если вам надо 3 дня чтобы разобраться в 5 строках кода то не понимаю как вы можете требовать деньги, да ещё и в разделах форума, где нормальные, не алчные люди помогают друг другу за "спасибо"! При том, что за 1000р не только написать программу, ещё и плату развести, спаять и выслать можно. Видели что за конструкция то?

Если вы не можете разобраться в 5 строках кода то именно вы признаёте своё полное поражение и переходите в раздел мяу или в раздел ищу работу. Ибо тут люди помогают просто так, ну конечно если хватает способностей.

Так что защищайтесь сударь!
:tea:

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

Сб мар 25, 2017 08:03:36

Т.к. вы меня обвинили первым, то я - оскорбленная сторона, и устанавливаю правила дуэли.
Я установил правила, по которым вы не можете отказаться, не признав свое поражение.
Вы отказались, а предлог уже не важен.
Так что защищаться можно только от нападающего, а не от труса, коим вы являетесь, сударь.

С чем и желаю вам оставаться.

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

Сб мар 25, 2017 10:36:37

а мне ни кто не хочет помочь?

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

Сб мар 25, 2017 10:58:49

Misha119 писал(а):запускается преобразование само как только я пишу команду #asm("sleep"); где блин взаимосвязь тут?

если Sleep mode = ADC Noise Reduction Mode:
If the ADC is enabled, a conversion starts automatically when this mode is entered.

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

Сб мар 25, 2017 11:19:26

oleg110592 благодарю, теперь разобрался
пс: и кстати в режиме идл точно также автоматически запускается(и в даташите тоже написано автоматический запуск преобразования при режиме идл)

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

Вт мар 28, 2017 04:24:13

Подскажите, почему я не могу уснуть мега48. Ставлю регистры
Код:
SMCR |= ((1<<SE) | (0<<SM2) | (1<<SM1) | (0<<SM0));

потом
Код:
#asm("sleep");

Он как потреблял 0.7ма так и потребляет хотя должен в ноль вырубиться.
Хотя от INT0 заводится
Код:
EICRA=0x01;
EIMSK=0x01;
EIFR=0x01;
PCICR=0x00;

Глюк проца?

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

Вт мар 28, 2017 06:55:34

kotriks писал(а):Глюк проца?
разумеется. в этой теме столько глюков AVR найдено - просто ужас! не ветка форума, а сборище хакеров.

вы уверены, что потребляет именно проц, а не обвязка его? Вы порты в каком состоянии бросили? АЦП и компаратор в каком состоянии? BOD включен? WDT активен?

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

Вт мар 28, 2017 09:18:20

ARV писал(а):разумеется. в этой теме столько глюков AVR найдено - просто ужас!

Да успокойся ты, никто тебе платить не будет за помощь тут. Это в другие разделы.
И почему ты везде видишь глюки мк? Может просто у тебя не хватает знаний чтобы найти ошибку в компиляторе или в коде? Ты ведь так и не смог её найти...
:dont_know:

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

Вт мар 28, 2017 11:43:22

ARV писал(а):
kotriks писал(а):Глюк проца?
разумеется. в этой теме столько глюков AVR найдено - просто ужас! не ветка форума, а сборище хакеров.

вы уверены, что потребляет именно проц, а не обвязка его? Вы порты в каком состоянии бросили? АЦП и компаратор в каком состоянии? BOD включен? WDT активен?

всё отключенно проц голый, ноги в воздухе висят. забыл добавить что проц на 1мгц заведён.

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

Вт мар 28, 2017 12:10:37

kotriks писал(а):ноги в воздухе висят.

а программно что с ногами? DDR в нулях или нет? Код тестовый или рабочий? Т.е. помимо усыпления что-то делается или перед усыплением делалось?
Ответить