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

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

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

Подробнее

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
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

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

 

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...

  • Сообщения

    • уверены ,что ТЭНа подогревалки хватит так нагреть ОЖ,при том что циркуляция естественная,что хватит чтот там прогреть в салоне существенно? печка студит зимой движок знатно) мне самодельный обошёлся в стоимость ТЭНа(тогда 300р)причем ТЭН могу поменять в любое время,а не покупать новый подогреватель. смотря какой мороз,за это время даже двигатель не нагреется
    • Спасибо, платы получил. Качество как всегда на высоте.
    • Значит это приманиватель. Тут его и газетой бить нужно, чтобы не гоняться по всему дому
    • Я работал с аналогичными мелкими твердотельное реле, импортными и нашими. Полевики на выходе полностью открываются при токе через светодиод 1-1,3 мА, падение на светодиоде около 1 вольта. Выбор тока через светодиод в обычных оптронах надо делать по графику CTR (коэффициент передачи  по  току). На выходе обычного оптрона стоит биполярный транзистор, ток коллектора которого зависит от тока базы. Если ток через выходной транзистор превышает пару мА, то освещенность базового слоя в транзисторе надо увеличивать. В документации данных по току выходного транзистора обычно нет, поэтому нужно в реале проверять какой ток светодиода даст требуемый ток в выходном транзисторе. Оптроны типа 817 ток на выходе 10 мА выдадут конечно, но при огромном токе через светодиод. Если оптрон включает обмотку реле, то реле с малым током, например, 5 мА, это реле >48V, можно поставить. Для тока на выходе оптрона более 5 мА надо ставить ключ. С ключём любой оптрон будет работать с небольшим током через светик. Максимальный ток 50 мА через светик пропускать нельзя, полагаю, что это ускорит деградацию оптрона и сильно снизит надежность девайса. Если выходной транзистор насыщается при паре мА через светик, то на хрена давать 50 мА?   
    • Серёг, да дело не в халяве, а в законности, bля! Всё дело в том, что у нас законов то нетути. Я и не думал лезть в закон, пока меня тинькоф-банк не нае@л. Потом с ним пободались- в дело включается ОТП-банк. Я через их кредит мамке телик купил, на котором она мои ролики смотрит (там мой аккаунт- соответственно мои подписанные каналы). И тут она заходит ко мне, и грит, слушай, а почему ты кредит платишь, а там какая то сумма в 530 рублей с галочкой стоит? И тут я посмотрел кредитный договор. Потом ихнюю выписку из ЕГРЮЛ, потом ихнюю лицензию, и тута Остапа понесло! Нашёл через контакт "ОТП-банк" ихнего представителя, которая мне дала ихнюю электронку. (ну по телефону то обсуждать финансовые дела- моветон!). туды отослал,номер договора, и номер паспорта, и то, что я не физическое лицо, а человек, и прочее. Получаю ответ, мол, ваш кредитный договор не найден в наших базах данных. И фсё!
    • Хм, тогда тебе легко можно перейти из плохой позиции в хорошую, избавившись от лишнего. это гораздо легче, чем это лишнее приобрести.   Ну, дык, а он есть? Его можно использовать для принудительного труда, пока не отработает, чего он там задолжал.
    • Что-то у меня какая-то фигня с напряжением на выходе, в минусовом плече 16,5В в плюсовом 15,7В, стабилитроны 18В стоят. Резисторы 2,6 поставил 1,8кОм. на самих стабилитронах напряжение 17В и 16,2В, думал разброс параметров стабилитрона, менял - не помогло. Это может быть связано с беттой транзисторов? Стоят БД139/140.
  • Покупай!

×
×
  • Create New...