galex4 je napisal/a: |
kako iz celega števila pretvoriti na decimalko, za DS1820 imam naslednjo kodopisano v mikroBASIC-u
koda: program One_WIRE_1 dim LCD_RS as sbit at RB4_bit LCD_EN as sbit at RB5_bit LCD_D4 as sbit at RB0_bit LCD_D5 as sbit at RB1_bit LCD_D6 as sbit at RB2_bit LCD_D7 as sbit at RB3_bit LCD_RS_Direction as sbit at TRISB4_bit LCD_EN_Direction as sbit at TRISB5_bit LCD_D4_Direction as sbit at TRISB0_bit LCD_D5_Direction as sbit at TRISB1_bit LCD_D6_Direction as sbit at TRISB2_bit LCD_D7_Direction as sbit at TRISB3_bit dim txt as char[9] temp as word dim TextLcd as Char[10] dim TempLSB as word dim TempMSB as word main: ADCON1 = %00000110 Lcd_Init() Lcd_Cmd(_LCD_CLEAR) Lcd_Cmd(_LCD_CURSOR_OFF) Lcd_Out(1, 1, " Temperatura: ") Lcd_Chr(2,13,178) Lcd_Chr(2,14,"C") while true Ow_Reset(PORTE, 2) Ow_Write(PORTE, 2, 0xCC) Ow_Write(PORTE, 2, 0x44) Delay_us(120) Ow_Reset(PORTE, 2) Ow_Write(PORTE, 2, 0xCC) Ow_Write(PORTE, 2, 0xBE) temp = Ow_Read(PORTE, 2) temp = temp / 2 TempLSB = Ow_Read(PORTE, 2) TempMSB = Ow_Read(PORTE, 2) temp = (TempMSB << 8) + TempLSB IntToStr(temp / 2, LcdToStr) Lcd_Out(2,1,LcdToStr) WordToStr(temp, txt) Lcd_Out(2, 8, txt) delay_ms(520) wend end. ko če temp ne delim z 2 ima 1x večjo vrednost pri delitvi pa dobim celo število, na kak način pa dosežem tistih 0,5?? kakšne vrednosti sta tista 2 byta (LSB in MSB)iz katerih nato preračunamo realno vrednost? |
mato1111 je napisal/a: |
Bi bil kdo tako prijazen in napisal kako se definira in vklopi/izklopi posamezni pin (LED) ? |
mato1111 je napisal/a: |
kako se spremenljivko tipa int prikaze na LCD? z tekstom mi je uspelo z spremenljivkami pa nikakor ne. |