Witam mam problem z zapisem w programie następującego wielomianu:
y = 3,627*V1 do potęgi 6 - 38,63*V1 do potęgi 5 + 167,9*V1 do potęgi 4 - 382,0*V1 do potęgi 3 + 475,2*V1 do potęgi 2 - 307,4*V1 + 101,2
Wynik y ma być wyświetlany na LCD.
Próbowałem tak, ale wychodzi zły wynik:
y = 3,627*V1 do potęgi 6 - 38,63*V1 do potęgi 5 + 167,9*V1 do potęgi 4 - 382,0*V1 do potęgi 3 + 475,2*V1 do potęgi 2 - 307,4*V1 + 101,2
Wynik y ma być wyświetlany na LCD.
Próbowałem tak, ale wychodzi zły wynik:
$regfile = "m16def.dat" 'informuje kompilator o pliku
$crystal = 8000000 'informuje kompilator o częstotliwości oscylatora
Config Porta.6 = Input 'port wejściowy
Config Lcd = 16 * 2 'konfiguracja typu wyťwietlacza LCD
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.5 , Db6 = Portb.2 , Db7 = Portb.4 , E = Portb.7 , Rs = Portb.6
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja wewnętrznego przetwornika A/C
Dim Wart_u1 As Word
Dim U1 As Single
Dim V1 As Single
Dim Y As Single
Dim X As Single
Dim Wart_nap1 As String * 4
Do
Cls
Start Adc
Cursor Off
Wart_u1 = Getadc(6)
U1 = Wart_u1 * 0.004887585533
V1 = U1
Y = V1 ^ 6
Y = Y * 3.627
X = V1 ^ 5
X = X * 38.63
Y = Y - X
X = V1 ^ 4
X = X * 167.9
Y = Y + X
X = V1 ^ 3
X = X * 382
Y = Y - X
X = V1 ^ 2
X = X * 475.2
Y = Y + X
Y = Y - 307.4
Y = Y * V1
Y = Y + 101.2
Wart_nap1 = Fusing(y , "#.#" )
Wart_nap1 = Format(wart_nap1 , " ")
Cls
Locate 1 , 1
Lcd " " ; Chr(6) ; " "
Locate 2 , 1
Lcd Wart_nap1 ; " "
Waitms 800
Loop
End