Witam
Piszę sobie prosty program do sterowania triakiem.
Na jednym pinie na przerwaniu PCINT0 jest zrobiony zero-crossing
Program ma odpalić Triak z zadanym opóźnieniem na pół milisekundy.
Przetwornik sobie chodzi w trybie free i ze starszych 8 bitów chce sobie wyliczyć opóźnienie od 0 do 9000 mikrosekund (9 mili).
Problem mam z samym przeliczeniem
Oto kod programu:
Bascom zgłasza błąd 63 w linii: Waitt = Int(9000 *(1 - Voltage / 255))
Integer or long expected for ABS()
Moja logika jest taka, że jeśli napięcie będzie takie jak VCC to wtedy Voltage będzie zawierać wartość 255. Operacja ma dać 9ms opóźnienia dla skręconego potencjometru i 0 dla pełnego zakresu. Wynika to z działania triaka - im później w półokresie się włączy tym mniejsza wartość średnia/skuteczna napięcia.
Jak już sobie poradzę z tym skalowaniem, to powstanie taki mały zestaw badawczy do badania pracy triaków z rożnymi obciążeniami. Planuję też dodać zadawanie czasu zapłonu z komputera.
Proszę o pomoc z tą konwersją typów zmiennych.
Piszę sobie prosty program do sterowania triakiem.
Na jednym pinie na przerwaniu PCINT0 jest zrobiony zero-crossing
Program ma odpalić Triak z zadanym opóźnieniem na pół milisekundy.
Przetwornik sobie chodzi w trybie free i ze starszych 8 bitów chce sobie wyliczyć opóźnienie od 0 do 9000 mikrosekund (9 mili).
Problem mam z samym przeliczeniem
Oto kod programu:
Kod: text
Bascom zgłasza błąd 63 w linii: Waitt = Int(9000 *(1 - Voltage / 255))
Integer or long expected for ABS()
Moja logika jest taka, że jeśli napięcie będzie takie jak VCC to wtedy Voltage będzie zawierać wartość 255. Operacja ma dać 9ms opóźnienia dla skręconego potencjometru i 0 dla pełnego zakresu. Wynika to z działania triaka - im później w półokresie się włączy tym mniejsza wartość średnia/skuteczna napięcia.
Jak już sobie poradzę z tym skalowaniem, to powstanie taki mały zestaw badawczy do badania pracy triaków z rożnymi obciążeniami. Planuję też dodać zadawanie czasu zapłonu z komputera.
Proszę o pomoc z tą konwersją typów zmiennych.