Здравсвуйте дорогие форумяане!
Сразу к делу. Имеется код, точнее его кусок написаный для теста дисплея:
#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
Посоветуйте кто что думает.
Заранее благодарен!
tiny26 и семисегментник
- Реклама
Re: tiny26 и семисегментник
Не говорит...слушатель писал(а): Сразу к делу. И
Не говорит ли это о глючности контроллера ?
Схему подключения индикатора в студию...
— Не говорите мне что делать и я не скажу куда Вам идти...
- слушатель
- Первый раз сказал Мяу!
- Сообщения: 26
- Зарегистрирован: Пт ноя 05, 2010 11:12:51
- Контактная информация:
Re: tiny26 и семисегментник
Марка индикатора неизвесная - 3-х разрядный семисегментный, точка отсутствует. Опытным путем было установлено: индикатор с общим катодом, даные приходят с прта А соответственно макросу, адрес - РВ0, РВ1, РВ2.
Устройство подвально-промышленное, просто сгорела тинька.
Вот немогу понять, как здесь схема включения может помочь. Я не первый раз восстанавливаю подобные устройства. пайка впорядке, кз и обрывов нет в том числе и в самом индикаторе.
Может ли компилятор такие бяки выдавать? Пробывал отключать оптимизацию - проблема не решилась.
Устройство подвально-промышленное, просто сгорела тинька.
Вот немогу понять, как здесь схема включения может помочь. Я не первый раз восстанавливаю подобные устройства. пайка впорядке, кз и обрывов нет в том числе и в самом индикаторе.
Может ли компилятор такие бяки выдавать? Пробывал отключать оптимизацию - проблема не решилась.
Re: tiny26 и семисегментник
Понятно... схема совершенно секретная....слушатель писал(а):Марка индикатора неизвесная - 3-х разрядный семисегментный, точка отсутствует. Опытным путем было установлено: индикатор с общим катодом, даные приходят с прта А, адрес - РВ0, РВ1, РВ2.
Устройство подвально-промышленное, просто сгорела тинька.
Вот немогу понять, как здесь схема включения может помочь. Я не первый раз восстанавливаю подобные устройства. пайка впорядке, кз и обрывов нет в том числе и в самом индикаторе.
Может ли компилятор такие бяки выдавать? Пробывал отключать оптимизацию - проблема не решилась.
Где инициализация DDRA и DDRB, к каким ногам сегменты подключены?
Если тинька живая (порт не сгорел), то все должно работать...
— Не говорите мне что делать и я не скажу куда Вам идти...
- слушатель
- Первый раз сказал Мяу!
- Сообщения: 26
- Зарегистрирован: Пт ноя 05, 2010 11:12:51
- Контактная информация:
Re: tiny26 и семисегментник
Да нет там ничего секретного! Простой ограничитель сетевого напряжения типа "Баръер". Схему не срисовывал - нечего там срисовывать. Лежу сейчас в больнице с ноутом, вот и от нечего делать решил победить этого зверя. Есть несколько десятков сломаных. Под рукой тестер и програматор.
На сегодня продолжать не буду - удаляюсь на процедуры.
Говнокод прилагаю.
На сегодня продолжать не буду - удаляюсь на процедуры.
Говнокод прилагаю.
- Вложения
-
- ac_protection.rar
- (2.38 КБ) 174 скачивания
- Реклама
Re: tiny26 и семисегментник
Выздоравливай
Кажется нашел -
Как сказано в великом ДШ:
- "Internal Voltage Reference (2.56 V), AREF pin (PA3) not connected."
Кажется нашел -
Код: Выделить всё
#define ADC_VREF_TYPE 0xC0
ADMUX=ADC_VREF_TYPE & 0xff;Это скорее всего и есть ошибка. Замени на #define ADC_VREF_TYPE 0x80Internal Voltage Reference (2.56 V) with external capacitor at AREF pin (PA3).
- "Internal Voltage Reference (2.56 V), AREF pin (PA3) not connected."
— Не говорите мне что делать и я не скажу куда Вам идти...
- слушатель
- Первый раз сказал Мяу!
- Сообщения: 26
- Зарегистрирован: Пт ноя 05, 2010 11:12:51
- Контактная информация:
Re: tiny26 и семисегментник
Действительно! Икак можно было такую глупость не увидеть...
Большое спасибо!
Большое спасибо!


