witam chciałbym zaprogramować tak attiny 2313 ze jak sie raz nacisnę przycisk dioda np na (PORTD.0) zacznie świecić a gdy drugi raz sie go nacisnę zacznie mrugać a gdy trzeci to kolejna funkcje zacznie wykonywać
czy jest to możliwe ?? w bascomie
Bardzo proszę o jakieś przykłady
Ja napisałem program gdzie 2 diody mrugaja a jak sie naciśnie przycisk to jedna mruga ale niestety przycisk trzeba trzymac a mi chodzi o to ze jak sie nacisnie to odrazu zmieni oto fragment programu ktorego ja napisałem
$regfile = "attiny2313.dat" 'najpierw określamy typ proca
$crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował
Config Portb = Input 'port b jako wejścia
Portb = &B11111111
Config Portd = Output 'pprt d jako wyjścia
Portd = &B11111111
Do
If Pinb.3 = 1 Then
Portd.0 = 0
Waitms 200
Toggle Portd.0
Waitms 200
Portd = 0
Waitms 200
Toggle Portd
Waitms 200
Portd.1 = 0
Waitms 200
Toggle Portd.1
Waitms 200
Portd = 0
Waitms 200
Toggle Portd
Waitms 200
End If
If Pinb.3 = 0 Then
Portd.0 = 0
Waitms 200
Toggle Portd.0
Waitms 200
End If
Loop
End
PROSZĘ O POMOC
Zaprogramować przycisk w Bascomie jak?
okey dzieki juz sie biore za czytanie
[ Dodano: 2008-12-16, 05:42 ]
$regfile = "attiny2313.dat" 'najpierw określamy typ proca
$crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował
Config Portb = Input 'port b jako wejścia
Portb = &B11111111 'wszędzie stan spoczynkowy-0
Config Portd = Output 'pprt d jako wyjścia
Portd = &B11111111
Do
Select Case Pinb.3
Case 0
Portd.0 = 0
Wait 1
Portd.0 = 1
End Select
Select Case Pinb.3
Case 1
Portd.1 = 0
Wait 1
Portd.1 = 1
Wait 1
Portd.1 = 0
Wait 1
Portd.1 = 1
Wait 1
Portd.1 = 0
Wait 1
Portd.1 = 1
End Select
Loop
End
Zrobiłem coś takiego ale jak to teraz zapentlic aby po nacisnieciu cały czas dioda z portud.0 mrygała przez jaka instrukcje i gdzie ja wsadzic??
[ Dodano: 2008-12-17, 00:39 ]
jak nacisnę raz to jedna dioda świeci
jak drugi raz to druga świeci
---> i tu jest moje pytanie dodałem trzecią funkcje case 3 ze obie diody świeca i nic dlaczego jak trzeba poprawić kod ??
A czwarta funkcje aby wyłączyć wszystkie Jak to poprawic ??
[ Dodano: 2008-12-18, 05:56 ]
funkcje juz działaja chciałbym teraz sterowac szybkoscia mrugania grugim przyciskiem pinb.2 tylko ze cos nie wychodzi
[ Dodano: 2008-12-18, 05:57 ]
funkcje juz działaja chciałbym teraz sterowac szybkoscia mrugania grugim przyciskiem pinb.2 tylko ze cos nie wychodzi
[ Dodano: 2008-12-16, 05:42 ]
$regfile = "attiny2313.dat" 'najpierw określamy typ proca
$crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował
Config Portb = Input 'port b jako wejścia
Portb = &B11111111 'wszędzie stan spoczynkowy-0
Config Portd = Output 'pprt d jako wyjścia
Portd = &B11111111
Do
Select Case Pinb.3
Case 0
Portd.0 = 0
Wait 1
Portd.0 = 1
End Select
Select Case Pinb.3
Case 1
Portd.1 = 0
Wait 1
Portd.1 = 1
Wait 1
Portd.1 = 0
Wait 1
Portd.1 = 1
Wait 1
Portd.1 = 0
Wait 1
Portd.1 = 1
End Select
Loop
End
Zrobiłem coś takiego ale jak to teraz zapentlic aby po nacisnieciu cały czas dioda z portud.0 mrygała przez jaka instrukcje i gdzie ja wsadzic??
[ Dodano: 2008-12-17, 00:39 ]
jak nacisnę raz to jedna dioda świeci
jak drugi raz to druga świeci
---> i tu jest moje pytanie dodałem trzecią funkcje case 3 ze obie diody świeca i nic dlaczego jak trzeba poprawić kod ??
A czwarta funkcje aby wyłączyć wszystkie Jak to poprawic ??
Kod: Zaznacz cały
$regfile = "attiny2313.dat" 'najpierw określamy typ proca
$crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował
Config Portb = Input 'port b jako wejścia
Portb = &B11111111
Config Portd = Output 'pprt d jako wyjścia
Portd = &B11111111
Dim Tryb As Byte
Do
While Pinb.3 = 0
Wait 1
Incr Tryb
Wend
Select Case Tryb:
Case 0:
Portd.0 = 0
Portd.1 = 1
'
Case 1:
Portd.0 = 1
Portd.1 = 0
Case 3:
Portd.0 = 0
Portd.1 = 0
Case Else:
Tryb = 0
End Select
loop
end[ Dodano: 2008-12-18, 05:56 ]
funkcje juz działaja chciałbym teraz sterowac szybkoscia mrugania grugim przyciskiem pinb.2 tylko ze cos nie wychodzi
Kod: Zaznacz cały
$regfile = "attiny2313.dat" 'najpierw określamy typ proca
$crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował
Config Portb = Input 'port b jako wejścia
Portb = &B11111111
Config Portd = Output 'pprt d jako wyjścia
Portd = &B11111111
Dim Tryb As Byte
Dim Szybkosc As Byte
Do
While Pinb.3 = 0
Waitms 800
Incr Szybkosc
Wend
Do
While Pinb.2 = 0
Waitms 800
Incr Tryb
Wend
Select Case Tryb:
Case 0:
Portd.0 = 0
Portd.1 = 1
'
Case 1:
Portd.0 = 1
Portd.1 = 0
Case 2:
Portd.0 = 0
Portd.1 = 0
Case 3:
Portd.0 = 0
Portd.1 = 0
Select Case Szybkosc:
Case 0:
Wait 1
'
Case 1:
Waitms 300
Case 2:
Waitms 200
Case 3:
Waitms 100
Case 4:
Waitms 50
Case Else:
Szybkosc = 0
End Select
Portd.0 = 1
Portd.1 = 1
Select Case Szybkosc:
Case 0:
Wait 1
'
Case 1:
Waitms 300
Case 2:
Waitms 200
Case 3:
Waitms 100
Case 4:
Waitms 50
Case Else:
Szybkosc = 0
End Select
Case 4:
Portd.0 = 0
Waitms 200
Portd.0 = 1
Portd.1 = 0
Waitms 200
Portd.1 = 1
Waitms 200
Case 5:
Portd.0 = 0
Waitms 100
Portd.0 = 1
Waitms 100
Portd.1 = 0
Waitms 100
Portd.1 = 1
Waitms 100
Case 6:
Portd.0 = 0
Waitms 70
Portd.0 = 1
Waitms 70
Portd.1 = 0
Waitms 70
Portd.1 = 1
Waitms 70
Case Else:
Tryb = 0
End Select
Loop
Loop
End [ Dodano: 2008-12-18, 05:57 ]
funkcje juz działaja chciałbym teraz sterowac szybkoscia mrugania grugim przyciskiem pinb.2 tylko ze cos nie wychodzi
Kod: Zaznacz cały
$regfile = "attiny2313.dat" 'najpierw określamy typ proca
$crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował
Config Portb = Input 'port b jako wejścia
Portb = &B11111111
Config Portd = Output 'pprt d jako wyjścia
Portd = &B11111111
Dim Tryb As Byte
Dim Szybkosc As Byte
Do
While Pinb.3 = 0
Waitms 800
Incr Szybkosc
Wend
Do
While Pinb.2 = 0
Waitms 800
Incr Tryb
Wend
Select Case Tryb:
Case 0:
Portd.0 = 0
Portd.1 = 1
'
Case 1:
Portd.0 = 1
Portd.1 = 0
Case 2:
Portd.0 = 0
Portd.1 = 0
Case 3:
Portd.0 = 0
Portd.1 = 0
Select Case Szybkosc:
Case 0:
Wait 1
'
Case 1:
Waitms 300
Case 2:
Waitms 200
Case 3:
Waitms 100
Case 4:
Waitms 50
Case Else:
Szybkosc = 0
End Select
Portd.0 = 1
Portd.1 = 1
Select Case Szybkosc:
Case 0:
Wait 1
'
Case 1:
Waitms 300
Case 2:
Waitms 200
Case 3:
Waitms 100
Case 4:
Waitms 50
Case Else:
Szybkosc = 0
End Select
Case 4:
Portd.0 = 0
Waitms 200
Portd.0 = 1
Portd.1 = 0
Waitms 200
Portd.1 = 1
Waitms 200
Case 5:
Portd.0 = 0
Waitms 100
Portd.0 = 1
Waitms 100
Portd.1 = 0
Waitms 100
Portd.1 = 1
Waitms 100
Case 6:
Portd.0 = 0
Waitms 70
Portd.0 = 1
Waitms 70
Portd.1 = 0
Waitms 70
Portd.1 = 1
Waitms 70
Case Else:
Tryb = 0
End Select
Loop
Loop
End