Witam
Pytanie natury technicznej...
Przedstawiam wycinek programu, odczyt z 2 portów adc konwersja i potrzeba wyświetlenia wyniku pomiaru w formacie 0.00.
Zauważyłem problem pojawiący się gdy w programie występują dwie instrukcje FUSING pracujące niezaleznie nad rożnymi danymi... coś mi sie zdaje że instrukcja FUSING korzysta ze zmiennych wewnętrznych i dwukrotne wykonanie tej instrukcji powoduje błedy w wyświetlaniu wyniku
Jeden wynik jest jakby połączony z drubim i wyświetlony jednocześnie, natomiast gdy zamienie kolejność instrukcji z procedurą FUSING ginie jeden wynik. Bład ten występuje w symulacji i w układzie... stos i ramka raczej są ok
poniżej kod programu
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portb.6
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Cls
Lcd "Power ON"
Wait 1
Cls
Dim Adc_v As Word
Dim Adc_i As Word
Dim V As Single
Dim I As Single
Dim D As Single
Dim Napiecie As String * 3
Dim Prad As String * 3
Start Adc
Do
Adc_v = Getadc(2)
Adc_i = Getadc(3)
V = Adc_v * 0.0049
I = Adc_i * 0.0049
Napiecie = Fusing(v , "#.##")
Prad = Fusing(i , "#.##")
Lcd Prad
Lowerline
Lcd Napiecie
Waitms 100
Cls
Loop
End
czy istnieje możliwośc wykorzystanie dwukrotnie instrukcji fusing bez błedu ???
Pytanie natury technicznej...
Przedstawiam wycinek programu, odczyt z 2 portów adc konwersja i potrzeba wyświetlenia wyniku pomiaru w formacie 0.00.
Zauważyłem problem pojawiący się gdy w programie występują dwie instrukcje FUSING pracujące niezaleznie nad rożnymi danymi... coś mi sie zdaje że instrukcja FUSING korzysta ze zmiennych wewnętrznych i dwukrotne wykonanie tej instrukcji powoduje błedy w wyświetlaniu wyniku
Jeden wynik jest jakby połączony z drubim i wyświetlony jednocześnie, natomiast gdy zamienie kolejność instrukcji z procedurą FUSING ginie jeden wynik. Bład ten występuje w symulacji i w układzie... stos i ramka raczej są ok
poniżej kod programu
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portb.6
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Cls
Lcd "Power ON"
Wait 1
Cls
Dim Adc_v As Word
Dim Adc_i As Word
Dim V As Single
Dim I As Single
Dim D As Single
Dim Napiecie As String * 3
Dim Prad As String * 3
Start Adc
Do
Adc_v = Getadc(2)
Adc_i = Getadc(3)
V = Adc_v * 0.0049
I = Adc_i * 0.0049
Napiecie = Fusing(v , "#.##")
Prad = Fusing(i , "#.##")
Lcd Prad
Lowerline
Lcd Napiecie
Waitms 100
Cls
Loop
End
czy istnieje możliwośc wykorzystanie dwukrotnie instrukcji fusing bez błedu ???