Viktor110668 0 19 марта, 2011 Опубликовано 19 марта, 2011 · Жалоба пишу на cvavr вывод из переменной на дисплей а дисплей чистый и ничего некажет #include <mega8.h> #include <delay.h> #include <stdio.h> #include <lcd.h> #asm .equ __lcd_port=0x12; PORTD /* ÆÊÈ äèñïëåé ïîäêëþ÷èëè ê ïîðòó I/O D */ #endasm unsigned int s = 5000; int tmp; void main(void) { lcd_init( 16 ); lcd_clear( ); lcd_gotoxy( 1,0 ); DDRB = 0x00; //ñòàâèì âñå ëàïêè ïîðòà B íà âõîä PORTB = 0x00; DDRD = 0xff; //ñòàâèì âñå ëàïêè ïîðòà D íà âûõîä PORTD = 0x00; DDRC = 0xff; //ñòàâèì âñå ëàïêè ïîðòà D íà âûõîä PORTC = 0x00; lcd_init(16); delay_ms(100); while(1) //áåñêîíå÷íûé öèêë { #asm("cli") tmp = s; #asm("sei") if (PINB.1==0) { (s=s++) ; } if (PINB.2==1) { (s=s--); } if (PINB.0==0) /* "ÅÑËÈ íà ïîðò Á îáíàðóæåíî íàïðÿæåíèå"; '==' - îçíà÷àåò ñðàâíåíèå, à '=' - ïðèñâàèâàíèå çíà÷åíèÿ. Êîãäà ëàïêà ïîðòà íàçíà÷åíà íà âõîä, òî â óñëîâèè ìû óæå ïèøåì íå PORT, à PIN.*/ { PORTC.0=1; } else { PORTC.0=0; }; if (PINB.0==0) { delay_ms(tmp); PORTC.1=1; } else { PORTC.1=0; } lcd_gotoxy( 1,1 ); /* çàïîëíÿåì ñèìâîëîì 2-óþ ñòðîêó îò 0 äî 15 */ lcd_putchar( tmp ); /* Ñèìâîë çàïîëíåííîãî çíàêîìåñòà èç òàáëèöû êîäîâ ñèìâîëîâ */ delay_ms( 50 ); } ; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vetal-Soft 0 19 марта, 2011 Опубликовано 19 марта, 2011 · Жалоба RTFM В lcd_putchar( tmp ) переменная tmp должнабыть типа char и должна содержать в себе код символа в соответствии с таблицей знакогенератора вашего дисплея. Эта функция используется для вывода одного символа! Если хотите вывести переменную на экран в читаемом виде надо использовать printf или sprintf. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viktor110668 0 19 марта, 2011 Опубликовано 19 марта, 2011 · Жалоба непойдет !!! функция printf сразу задействует usart и в протеусе выдает кучу ошибок Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vetal-Soft 0 20 марта, 2011 Опубликовано 20 марта, 2011 · Жалоба Используйте sprintf: char lcd_buffer[33]; sprintf(lcd_buffer,"%i",tmp); lcd_puts(lcd_buffer); ну и еще надо начать пользоваться хэлпом к вашему компилятору. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 20 марта, 2011 Опубликовано 20 марта, 2011 · Жалоба АВР и ЛЦД... Мартышко и очко ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться