Witam
Czy może ktoś wie jak poniższy warunek w C przedstawić w Bascomie AVR
if ((SWCounter >= Time_ptr) && (!((SWCounter > (WORD16MAX - EXEC_CONST)) && (Time_ptr < EXEC_CONST))))
j23
Warunek w C na Bascom
może tak?
Kod: Zaznacz cały
If (SWCounter >= Time_ptr) And Not ((SWCounter > (WORD16MAX - EXEC_CONST)) And (Time_ptr < EXEC_CONST)) Then
' .....
End If
Dziękuję za odpowiedź.
Logicznie Twój kod wygląda ok. Niestety składnia Bascoma nie pozwala na taki zapis.
Ja częściowo rozpisałem to tak:
Nie wiem jak użyć operatora NOT przekształcającego warunek prawdziwy na fałszywy, a warunek fałszywy na prawdziwy.
j23
Logicznie Twój kod wygląda ok. Niestety składnia Bascoma nie pozwala na taki zapis.
Ja częściowo rozpisałem to tak:
Kod: Zaznacz cały
If Swcounter >= Time_ptr Then
Word16max = Word16max - Exec_const
If Swcounter > Word16max And Time_ptr < Exec_const Then 'Ten warunek ma być NOT
' .....
End If
End Ifj23
Kod: Zaznacz cały
If Swcounter >= Time_ptr Then
Word16max = Word16max - Exec_const
If Swcounter > Word16max And Time_ptr < Exec_const Then 'Ten warunek ma być NOT
' .....
End If
End Ifco do NOT-a, jest taka zależność.... /(a*b) == /a + /b i odwrotnie /(a+b) == /a * /b więc:
Kod: Zaznacz cały
If Swcounter >= Time_ptr Then
Word16max = Word16max - Exec_const
If Swcounter <= Word16max Or Time_ptr >= Exec_const Then
' .....
End If
End IfWielkie dzięki. Działa!
Poniższe warunki są równoważne:
Zastosowanie prawa DeMorgana do przekształcania powyższych wyrażeń logicznych, jest b.dobrym rozwiązaniem.
Zastosowane prawo DeMorgana:
Negacja koniunkcji jest równa alternatywie negacji: NOT(a AND b) = (NOT a) OR (NOT b)
Jeszcze raz dziękuję za pomoc.
j23
Poniższe warunki są równoważne:
Kod: Zaznacz cały
C
if ((SWCounter >= Time_ptr) && (!((SWCounter > (WORD16MAX - EXEC_CONST)) && (Time_ptr < EXEC_CONST)))) Kod: Zaznacz cały
Bascom
If Swcounter >= Time_ptr Then
Word16max = Word16max - Exec_const
If Swcounter <= Word16max Or Time_ptr >= Exec_const Then
' .....
End If
End IfZastosowane prawo DeMorgana:
Negacja koniunkcji jest równa alternatywie negacji: NOT(a AND b) = (NOT a) OR (NOT b)
Jeszcze raz dziękuję za pomoc.
j23