unsigned char dispMenu(void) { menuItem* tempMenu,*tempMenu2; LCD_CMD (1);//clrscr //delay=10000; while (delay--){} LCD_CMD (1);//clrscr LCD_CMD (1);//clrscr LCD_CMD (1);//clrscr // первая строка - заголовок. Или пункт меню верхнего уровня //delay=10000; while (delay--){} LCD_GOTO (1,0); tempMenu = selectedMenuItem->Parent; if ((void*)tempMenu == (void*)&NULL_ENTRY) { // мы на верхнем уровне LCD_STRING ("MENU:"); } else { LCD_STRING ((char *)tempMenu->Text); } //lcd_clrscr(2); // LCD_GOTO (2,5); tempMenu2=selectedMenuItem->Previous; LCD_STRING ((char *)tempMenu2->Text); LCD_GOTO (3,4); LCD_PUTCHAR ('>'); LCD_GOTO (3,5); LCD_STRING ((char *)selectedMenuItem->Text); LCD_GOTO (4,5); tempMenu2=selectedMenuItem->Next; LCD_STRING ((char *)tempMenu2->Text); return (1); }
ssize_t lcd_write(struct file *filp, const char __user *user_buf, size_t count, loff_t *f_pos) { if (count > 16) count = 16; copy_from_user(kernel_buf,user_buf,count); kernel_buf[count-1]='\0'; LCD_STRING(kernel_buf); printk(KERN_INFO "lcd_couscous: write %s \n",kernel_buf); return count; }