Элементы выбираются и выводятся нормально на дисплей. Но когда я жму кнопку выбрать(ентер как бэ) то диод загорается, но при этом виснет "меню"... думаю в коде дело. т.к 4 мгц должно хватить на эти пару строк.:
Код:
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
int i = 0;
int up_key = 0;
int enter_key = 0;
int selected;
int lamp1 = 0;
char *bb[] = { "Settings", "Lamp 1", "Lamp 2", "Backlig.","point4","point5","point6" };
void main(void)
{
PORTA=0x00;
DDRA=0x00;
DDRB=0x00;
PORTB=0xFF;
PORTC=0x00;
DDRC=0x00;
DDRD=0xff;
// LCD module initialization
lcd_init(8);
//sprintf( buffer,"abc""abc %s","abc" );
while (1)
{
if(PINB.0 == 0){
if(up_key == 0){
lcd_clear( );
if(i >=(sizeof(bb)/sizeof(int))){ i = 0; }
i++;
lcd_gotoxy(0,0);
lcd_puts(bb[i]);
selected = i;
lcd_gotoxy(0,1);
if(i+1 >= (sizeof(bb)/sizeof(int))){
lcd_putsf("--------");
}else{
lcd_puts(bb[i+1]);
}
lcd_gotoxy(7,0 );
lcd_putchar(0xff);
}
up_key = 1;
}else{ up_key = 0; }
if(PINB.1 == 0){
if(enter_key == 0){
PORTD.6 = 0xff;
/* if(selected == 1){
if(!lamp1){
lamp1 = 0;
PORTD.6 = 0x00;
}
if(lamp1){
lamp1 = 1;
PORTD.6 = 0xff;
}
enter_key = 1;
}*/
}
} else{
enter_key = 0;
}
}
}