Jump to content
SergeyKa

Глючит Atmega8

Recommended Posts

Не могу понять в чем проблема. Микроконтроллер как-будто замирает и ведёт себя неадекватно. Кварц запитывается от двух конденсаторов 22pF. Сначала у меня было общее питание, которое питало светодиоды. Я подумал, что помехи проходят из-за него. Пришлось сделать два блок питания, однако и это не помогло, вместо того, чтобы плавно изменять цвет, микроконтроллер подвисает и некоторые цвета включаются резко и самопроизвольно. Менял другой микроконтроллер не помогло. С кварца идет стабильный синус на 16МГц.

v3r6jhe_2AA.jpg

 

#define F_CPU 16000000UL

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>


int main(void)
{

DDRB = 0x0e; 
PORTB |= (1 << PB4);
TCCR1A=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM10); 
TCCR1B=(1<<CS10); 
TCCR2=(1<<CS20)|(1<<COM21)|(1<<WGM20); 

OCR1A=0x00;
OCR1B=0x00;
OCR2=0xff;

while(1){
    
    for (unsigned char i = 0; i<255; i++)        
    {OCR2--; OCR1A++; _delay_ms(100);}
    
    for (unsigned char i = 0; i<255; i++)        
    {OCR1A--; OCR1B++; _delay_ms(100);}
        
    for (unsigned char i = 0; i<255; i++)        
    {OCR1B--; OCR2++; _delay_ms(100);}    
        
    
        }
}

Share this post


Link to post
Share on other sites

А вы учитываете, что OCR2 восьмибитнй, а OCR1A  и OCR1B - 16-битные, и циклы у вас совсем не одинаковое количество прогонов делают?

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

12 минуты назад, ARV сказал:

А вы учитываете, что OCR2 восьмибитнй, а OCR1A  и OCR1B - 16-битные, и циклы у вас совсем не одинаковое количество прогонов делают?

нужно OCR1AL? 

Share this post


Link to post
Share on other sites

Откуда я знаю, что вам нужно.

Я обычно регистры напрямую не инкрементирую/декрементирую, ибо там свои заморочки. Куда проще (и с моей т.з. правильнее) завести себе три переменных, их изменять, и уже их записывать в регистры ШИМ...

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

Выбор подходящего элемента питания, способного обеспечивать требуемый уровень напряжения и выдавать необходимый ток на протяжении всего периода эксплуатации беспроводной пожарно-охранной системы является одной из первостепенных задач. Наиболее подходящим для этих целей элементом являются литий-тионилхлоридные элементы питания, а одним из наиболее конкурентоспособных производителей – компания Fanso, предлагающая своим клиентам продукты как универсальные, так и разработанные специально для решения конкретных задач.

Подробнее...

 

6 минут назад, ARV сказал:

Я обычно регистры напрямую не инкрементирую/декрементирую, ибо там свои заморочки.

 

а в чем разница что я напишу так

number = 200;

OCR1A = number;

 

и в том что я напишу

OCR1A = 200; 

Share this post


Link to post
Share on other sites

Разница пояявляется, когда вы пишите OCR1A++ и впридачу используете это в качестве логического выражения - вы уже попали на том факте, что OCR1A++ даст 0 на выходе спустя 65535 циклов, а ведь навернка хотели, чтобы спустя 255. Там есть и другие моменты... которые, наверное, в конкретном случае никак не влияют, но привычка так делать может подвести в другой раз.

Share this post


Link to post
Share on other sites
4 минуты назад, ARV сказал:

Разница пояявляется, когда вы пишите OCR1A++ и впридачу используете это в качестве логического выражения - вы уже попали на том факте, что OCR1A++ даст 0 на выходе спустя 65535 циклов, а ведь навернка хотели, чтобы спустя 255. Там есть и другие моменты... которые, наверное, в конкретном случае никак не влияют, но привычка так делать может подвести в другой раз.

ну ок, я попробую, только не думаю что это решит проблему, потому что зависание идет где-то на 80% ШИМ, и число циклов ограничивается циклом FOR

Share this post


Link to post
Share on other sites
12 часа назад, SergeyKa сказал:

нужно OCR1AL? 

Нет , если ШИМ 16бит нужно преобразовать из int в два байта , например так:

Цитата

int pwm=2000;

OCR1A=pwm&0xFF;

OCR1B=(char)(pwm>>8);

 

Share this post


Link to post
Share on other sites
Posted (edited)

Ножка RESET болтается в воздухе. Сейчас микроконтроллер как-будто умер окончательно. Странно себя ведёт. Когда я втыкаю шлейф программатора (раньше было норм) сейчас на кварце нет частоты вообще. Т.е. вернее как я только воткнул его и подал питание есть. Я нажимаю в PonyProg -> ReadAll он читает, но дальше частота исчезает и в него не возможно ни записать ничего, ни прочитать, ни сбросить память ERASE. Фьюзы удалось прочитать. Но записать другие не выходит. Фьюзы читаются способом выдернул МК из слота программатора вставил -> прочитал. Записать так не удаётся. 

Фьюзы настроены на 16MHz, стоит кварц 16MHz. вроде новый неужели из-за него всё?

Vl-juWi1l7Q.jpg

Edited by SergeyKa

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • @Vadim 161 Вадим, а почему бы Вам  самому не создать страничку на том ресурсе? А на форумах просто давать ссылки на заказ изготовления. Ведь, насколько я знаю,  во многих проектах используются разработанные Вами платы, и не только на этом форуме. Я бы с удовольствием заказывал платы таким образом, зная что часть оплаты идёт автору. 
    • Мужики, 900 страниц в ветке, и вы ещё демагогию развели уже на 2. К чему весь этот базар...
    • Ну я то тружусь (не работаю от слова РАБ) на благо не тебя, отнюдь. Ты мне вообще нафиг не нужен. Я тружусь для твоих детей, и твоих же внуков. Были бы бапки- я бы всё вкладывал бы, а так последний... Твоих, и Геннадия, и других, для их будущего, мне то уже скоро на кремацию, которая сейчас стоит дешевле могилы, кстати. Вот, кстати, буквально на пальцах разъясняет тебе про гражданство!  
    • Ну значит не ждём, начхать,мне от вам не нужно быдо нечего,а вы уже в отказ пошли ,смешненько как то Видал я таких работающих ради людей,ради правды ,да фиг,ради собственной наживы вы работаете ,подтверждение ранее слов о том что за спасибо только прыщи работают, все остальное меркантильное месиво
    • Но список критериев есть, кмк в первую очередь - этодорогоэтодорого, тк термин маркетинговый, за дешиво может быть разве что "аудиофильская схемотехника". 
    • я по рыскал по платам -там и Дорофеев и усе) DTS указал в коментах - что автор - китаец поблагодарил) за донатики ничего не сказал - спасибо грит - Автор))
×
×
  • Create New...