Глюки? или как проверить роботоспособность мк (attiny2313)?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Пишу здесь, в надежде найти хоть какое то логическое объяснение.

Есть у меня 3 микроконтроллера attiny2313, два из них новые, только купленные. Спаял схему, микроконтроллер и индикатор на 3 цифри. Написал небольшую программку, которая просто "считает" и выводит цифры от 0 до 999. То есть так должно бить, но так не есть. Какие то странные глюки случаются. например, считает до 23 и снова с нуля, будто перегружается, или ресет микроконтроллеру. Или другой случай, считает до 2 а потом выводить 888 и зависает. И такие глюки на все 3-их микроконтроллерах. Глюки разные бывают.

Микроконтроллеры прошиваться, стираются, и проверяются(verification) нормально. Запускаю их от внутреннего генератора. Для стабилизатора использую 78L05 без дополнительных фильтров(конденсаторов), но питание от 12v аккумулятора.

Вопрос вот в чем, они все "дохлые" или в чем может бить такие глюки? Мучаюсь с етим уже несколько дней.

Надеюсь у кого то найдутся какие то мисли по поводу глюков. Спасибо.
Реклама
lix
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 17, 2010 15:32:19
Откуда: Курган

Сообщение lix »

сбрасываться мк может из-за watchdog'а. к 78l05 нужны конденсаторы, без них она может возбуждаться, и порождать разные глюки, типа ваших
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

99.9% глюков - глюки созданные программистом :)))
программу в студию, ну и кондеры на 7805 повесь.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

lix писал(а):сбрасываться мк может из-за watchdog'а.
он отключен.
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Программа разработана для цифрового термометра, поетому там еще есть дополнительной код, который пока не используется.
Вложения
ink.c
Программа
(4.59 КБ) 464 скачивания
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

lix писал(а):к 78l05 нужны конденсаторы, без них она может возбуждаться, и порождать разные глюки, типа ваших
Спасибо, попробую.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

объясните пожалуйста логику работы нижеследующих строк:

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

PORTD.4 = 3 == iNum;
PORTD.5 = 2 == iNum;
PORTD.6 = 1 == iNum;
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Danko писал(а):объясните пожалуйста логику работы нижеследующих строк:

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

PORTD.4 = 3 == iNum;
PORTD.5 = 2 == iNum;
PORTD.6 = 1 == iNum;
подтягиваем нужний порт, когда нужно "засветить" нужную цифру, первую, вторую или третю.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

Играетесь с приоритетом операций. Неплохо!!!

Но если Вы еще не столкнулись с послесвечением, то могу сказать у вас одновременно единица (на короткое время) появляется на двух портах.

в TurnOnDisplay() я бы добавил одну строку.

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

PORTB = numbers[11]; // погасить не разряд, а сегменты

PORTD.4 = 3 == iNum;
PORTD.5 = 2 == iNum;
PORTD.6 = 1 == iNum;
а из DisplayTemp() строки

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

PORTD.4 = 0;
PORTD.5 = 0;
PORTD.6 = 0;    
можно удалить.

Если число с точкой, то Вы через 300 uS гасите число и зажигаете точку.

Вот так наверное лучше

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

PORTB = d;

if(dot)
    {         
        PORTB.5 = 0;
    }
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Danko писал(а):Играетесь с приоритетом операций. Неплохо!!!
То есть это хорошо или не очень?
Danko писал(а):Играетесь с приоритетом операций. Неплохо!!!
Но если Вы еще не столкнулись с послесвечением, то могу сказать у вас одновременно единица (на короткое время) появляется на двух портах.
спасибо, учту.

Danko писал(а): Если число с точкой, то Вы через 300 uS гасите число и зажигаете точку.

Вот так наверное лучше

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

PORTB = d;

if(dot)
    {         
        PORTB.5 = 0;
    }
Спасибо, как то сам до этого не додумался. :oops:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

pierro писал(а):То есть это хорошо или не очень?
То, что Вы о них знаете это очень хорошо.
А вот то, что нет комментариев это очень плохо.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Спасибо всем. Поставил фильтра на 78L05 все заработало как ... термометр :beer:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»