tiny26 и семисегментник

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

tiny26 и семисегментник

Сообщение слушатель »

Здравсвуйте дорогие форумяане!
Сразу к делу. Имеется код, точнее его кусок написаный для теста дисплея:

#define g 64
#define f 2
#define e 8
#define d 16
#define c 128
#define b 1
#define a 4

#define data_port PORTA
#define led_port PORTB
#define NUM_OF_DIG 3 //разрядность дисплея

void test(void){
led_port&=0b11111011;

data_port=0x00;
data_port= a ;
delay_ms(600);

data_port=0x00;
data_port= b ;
delay_ms(600);

data_port=0x00;
data_port= c ;
delay_ms(600);

data_port=0x00;
data_port= d ;
delay_ms(600);

data_port=0x00;
data_port= e ;
delay_ms(600);

data_port=0x00;
data_port= f ;
delay_ms(600);

data_port=0x00;
data_port= g ;
delay_ms(600);

data_port=0x00;
data_port= 0xFF ;
delay_ms(600);

data_port=0x00;
}

void main(void){
init ();
LoadTestData();


while (1){
//Display(uadc_c);
//Display(846);

test();



};
}


короче прога ходит по сегментам как положено, но как только data_port= 0xFF не горит сегмент "е". То же самое происходит при индикации любых чисел (вместо 846 показывает 945).
Не говорит ли это о глючности контроллера ? другого контроллера под рукой не имею.
Компилировал CVAVR 1.25.9

Посоветуйте кто что думает.
Заранее благодарен!
Реклама
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: tiny26 и семисегментник

Сообщение md5sum »

слушатель писал(а): Сразу к делу. И
Не говорит ли это о глючности контроллера ?
Не говорит...
Схему подключения индикатора в студию...
— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

Re: tiny26 и семисегментник

Сообщение слушатель »

Марка индикатора неизвесная - 3-х разрядный семисегментный, точка отсутствует. Опытным путем было установлено: индикатор с общим катодом, даные приходят с прта А соответственно макросу, адрес - РВ0, РВ1, РВ2.
Устройство подвально-промышленное, просто сгорела тинька.
Вот немогу понять, как здесь схема включения может помочь. Я не первый раз восстанавливаю подобные устройства. пайка впорядке, кз и обрывов нет в том числе и в самом индикаторе.
Может ли компилятор такие бяки выдавать? Пробывал отключать оптимизацию - проблема не решилась.
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: tiny26 и семисегментник

Сообщение md5sum »

слушатель писал(а):Марка индикатора неизвесная - 3-х разрядный семисегментный, точка отсутствует. Опытным путем было установлено: индикатор с общим катодом, даные приходят с прта А, адрес - РВ0, РВ1, РВ2.
Устройство подвально-промышленное, просто сгорела тинька.
Вот немогу понять, как здесь схема включения может помочь. Я не первый раз восстанавливаю подобные устройства. пайка впорядке, кз и обрывов нет в том числе и в самом индикаторе.
Может ли компилятор такие бяки выдавать? Пробывал отключать оптимизацию - проблема не решилась.
Понятно... схема совершенно секретная....
Где инициализация DDRA и DDRB, к каким ногам сегменты подключены?
Если тинька живая (порт не сгорел), то все должно работать...
— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

Re: tiny26 и семисегментник

Сообщение слушатель »

Да нет там ничего секретного! Простой ограничитель сетевого напряжения типа "Баръер". Схему не срисовывал - нечего там срисовывать. Лежу сейчас в больнице с ноутом, вот и от нечего делать решил победить этого зверя. Есть несколько десятков сломаных. Под рукой тестер и програматор.
На сегодня продолжать не буду - удаляюсь на процедуры.
Говнокод прилагаю.
Вложения
ac_protection.rar
(2.38 КБ) 174 скачивания
Реклама
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: tiny26 и семисегментник

Сообщение md5sum »

Выздоравливай :beer:
Кажется нашел -

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

#define ADC_VREF_TYPE 0xC0
ADMUX=ADC_VREF_TYPE & 0xff;
Как сказано в великом ДШ:
Internal Voltage Reference (2.56 V) with external capacitor at AREF pin (PA3).
Это скорее всего и есть ошибка. Замени на #define ADC_VREF_TYPE 0x80
- "Internal Voltage Reference (2.56 V), AREF pin (PA3) not connected."
— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
Аватара пользователя
слушатель
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пт ноя 05, 2010 11:12:51
Контактная информация:

Re: tiny26 и семисегментник

Сообщение слушатель »

Действительно! Икак можно было такую глупость не увидеть...
Большое спасибо!
Закрыто

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