Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Problem z kodem

xamrex
-
-
Posty: 10
Rejestracja: 9 paź 2010, o 15:44
Lokalizacja: kosmosu

Problem z kodem

Postautor: xamrex » 9 paź 2010, o 15:51

Witam,
Naskrobałem coś takiego;

Kod: Zaznacz cały

$regfile = "attiny2313.dat" 'najpierw określamy typ proca Config Portb = Output ' ustawienie całego Portu B jako wyjscia Portb = &B11111111 ' stan spoczynkowy wszystkich wyjsć ustawiony na 1 Config Portd = Input Portd = &B1111111 ' stan spoczynkowy wszystkich bitów ustawiony na 1 Do If Pind.0 = 0 Then ' jesli przycisk zewrzemy Waitms 50 'zaswiec diode Toggle Portb.0 Elseif Pind.1 = 0 Then Waitms 100 Toggle Portb.0 End If Loop End
Jak to działa
Jeśli PinD.0 przyłożę do masy to dioda miga mi szybko. (jeśli wezmę przewód z powrotem to dioda albo świeci cały czas albo w ogóle nie świeci; żeby migała muszę mieć port zwarty do masy)

Jeśli PinD.1 przyłożę do masy to dioda miga mi wolno. (jeśli wezmę przewód z powrotem to dioda albo świeci cały czas albo w ogóle nie świeci; żeby migała muszę mieć port zwarty do masy)


A chcę zrobić coś takiego:
Jeśli PinD.0 przyłożę do masy (nawet na chwilkę)to dioda ma mi migać szybko już na stałe
a potem jeśli
Jeśli PinD.1 przyłożę do masy (nawet na chwilkę)to dioda ma mi migać wolniej ale też już na stałe

xamrex
-
-
Posty: 10
Rejestracja: 9 paź 2010, o 15:44
Lokalizacja: kosmosu

Postautor: xamrex » 9 paź 2010, o 16:34

Zrobiłem,
Wygląda to tak:

Kod: Zaznacz cały

$regfile = "attiny2313.dat" 'najpierw określamy typ proca Config Portb = Output ' ustawienie całego Portu B jako wyjscia Portb = &B11111111 ' stan spoczynkowy wszystkich wyjsć ustawiony na 1 Config Portd = Input Portd = &B1111111 ' stan spoczynkowy wszystkich bitów ustawiony na 1 Dim Szybkosc As Byte Szybkosc = 0 Do If Pind.0 = 0 Then 'zmenic na pin w 2 przypadkach Szybkosc = 1 Elseif Pind.1 = 0 Then Szybkosc = 2 End If ' jesli przycisk zewrzemy If Szybkosc = 0 Then Portb.0 = 0 Elseif Szybkosc = 1 Then Portb.0 = 0 Waitms 50 Toggle Portb.0 Waitms 50 Elseif Szybkosc = 2 Then Portb.0 = 0 Waitms 100 Toggle Portb.0 Waitms 50 End If Loop 'koniec bloku warunkowego 'koniec pętli ' gdy nie ma warunku - pętla będzie się wykonywać w nieskończonosć End
Jestem pewny, że dałoby się to zrobić w łatwiejszy sposób, ale ten też działa :D

matrix
-
-
Posty: 342
Rejestracja: 7 maja 2010, o 14:02
Lokalizacja: Sochaczew
Kontaktowanie:

Postautor: matrix » 9 paź 2010, o 18:56

a co będzie jeśli oba piny zewrzesz do masy?

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 102 gości