tiny26 и семисегментник
Добавлено: Вт авг 23, 2011 10:08:50
Здравсвуйте дорогие форумяане!
Сразу к делу. Имеется код, точнее его кусок написаный для теста дисплея:
#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
Посоветуйте кто что думает.
Заранее благодарен!
Сразу к делу. Имеется код, точнее его кусок написаный для теста дисплея:
#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
Посоветуйте кто что думает.
Заранее благодарен!