Napisałem swój pierwszy program w bascomie dla układu "żyrandola" działanie proste:
załączamy światło świeci się jedna żarówka, gasimy, załączamy drugi raz światło - świeci się druga żarówka itd.
Chciałbym użyć mikrokontrolera Attiny13 ze względów na rozmiar, a u mieścić go chciałem w oprawie lampy
PB0 - wyjście do przekaźnika 1
Pb1 - wyjście do przekaźnika 2
Pb2 - wyjście, dioda led
Pb3 - wejście, panuje na nim stan wysoki do póki jest napięcie na przewodach
Pb4 - wejście, microswitch podpięty do Vcc
$regfile = "attiny13.dat"
$crystal = 10000000
Config Portb.0 = Output 'Ustawiamy port PB0 na wyjście
Bulb1 Alias Portb.0 'Nazywamy go Bulb1
Reset Bulb1 'ustawiamy 0 na tym porcie
Config Portb.1 = Output
Bulb2 Alias Portb.1
Reset Bulb2
Config Portb.2 = Output
Led Alias Portb.2
Set Led 'ustawiamy stan wysoki na tym wyjściu
Config Portb.3 = Input 'ustawiamy wejście na port PB3
Reset Portb.3 'Podpinamy PB3 do GND
Napiecie Alias Pinb.3 'odczyt stanu na tym porcie nazywamy Napiecie
Config Portb.4 = Input
Reset Portb.4
Klawisz Alias Pinb.4
Config Debounce = 30 'ustawiamy czas dla funkcji drgania styków
'tworzymy zmienną jako bajt
Dim Zmienna As Byte
Debounce Klawisz , 1 , Sw , Sub 'funkcja zapobiegająca drganiom styków
If Napiecie = 1 Then 'jeżeli napiecie =1 wtedy
Readeeprom Zmienna , 1 'przeczytaj zawartość zeminnej o adresie 1
If Sw Then 'jeśli na porcie PB4 pojawi się 1 to wtedy
Writeeeprom Incr Zmienna , 1 'zapisz do eepromu zmienną powiększoną o 1, do adresu 1
End If
Readeeprom Zmienna , 1 'przeczytaj zawartość adresu 1
Select Case Zmienna 'jesli mamy zmienną
Case 1 : Set Bulb1 And Reset Bulb2 And Writeeeprom Incr Zmienna , 1 'i jest ona rówa 1 to daj stan wysoki na Bulb1 i niski na bulb 2 i zapisz zmienną powiekszoną o 1
Case 2 : Reset Bulb1 And Set Bulb2 And Writeeeprom Incr Zmienna , 1
Case 3 : Set Bulb1 And Set Bulb2 And Writeeeprom Incr Zmienna , 1
Case Else Set Bulb1 And Set Bulb2 And Writeeeprom Incr Zmienna , 1 'i nie ma ona żadnej wartości to daj stan wysoki na dwóch wyjściach
End Select
End If
Prosiłbym o sprawdzenie kodu czy jest poprawny, zastosowałem w nim funkcje Debounce nie wiem czy poprawnie
Bascom
Proponuje poczytać Programowanie mikrokontrolerow AVR w jezyku Bascom - Marcin Wiazania
Bascom
Oczywiście wezmę się lekteruę jednak po zakończeniu roku szkolnego :)
Prosiłbym o wytykanie błędów, gdyż chce skończyć swoj projekt jak najszybciej i go (darmowo) udostępnić gdyż myślę, że przyda się wielu.