Turboasm Napisano Maj 26, 2009 Udostępnij Napisano Maj 26, 2009 mam kod: $regfile = "m8def.dat" $crystal = 8000000 Config Pinc.5 = Output Portc.5 = 0 Config Pinc.4 = Input Portc.4 = 1 Config Pinc.3 = Input Portc.3 = 1 Do Dim X As Byte X = 1 If Pinc.4 = 0 Then X = X + 1 End If If Pinc.3 = 0 Then X = X - 1 End If Waitms X Toggle Portc.5 Loop End jak zmodyfikować ten kod aby reagował zaraz po naciśnięciu przycisku i aby zmienna X była zapamiętywana w eeprom ? Link do komentarza Share on other sites More sharing options...
mskojon Maj 26, 2009 Udostępnij Maj 26, 2009 $regfile = "m8def.dat" $crystal = 8000000 Config Port.5 = Output Portc.5 = 0 Config Pinc.4 = Input Config Pinc.3 = Input Dim X As Byte Dim Y As Eram Byte X = 1 Do If Pinc.4 = 0 Then Incr X If Pinc.3 = 0 Then Decr X Waitms X Toggle Portc.5 Loop End Cały kod był źle napisany, poprawiłem go. Aby zapamiętać wartość X musisz po prostu w odpowiednim miejscu wpisać Y = X, a gdy chcesz odczytać wartość X wpisujesz X = Y. 1 Link do komentarza Share on other sites More sharing options...
Turboasm Maj 26, 2009 Autor tematu Udostępnij Maj 26, 2009 tylko program i tak nie działa jak powinien. Chodziło mi o to żeby regulować częstotliwości mrugania diody za pomocą przycisków. Link do komentarza Share on other sites More sharing options...
Mihau Maj 26, 2009 Udostępnij Maj 26, 2009 Może działa, tylko jak zaczynasz od 1 ms przerwy i dodajesz tylko jeden to musiałbyś 100 razy nacisnąć przycisk żeby mrugała co sek. Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Turboasm Maj 26, 2009 Autor tematu Udostępnij Maj 26, 2009 tylko że chodzi mi o zmiany od 1 do max 15 ms Link do komentarza Share on other sites More sharing options...
Mihau Maj 26, 2009 Udostępnij Maj 26, 2009 A skąd wieszczy działa czy nie? Może za duży/mały rezystor? Link do komentarza Share on other sites More sharing options...
Turboasm Maj 26, 2009 Autor tematu Udostępnij Maj 26, 2009 wpisywałem program do procesora. i mam do PC5 podłączoną diodę przez rezystor 100ohm a do pc3-4 przyciski zwierające do masy. Program powoduje albo stałe świecenie diody lub po naciśnięciu przycisku ( pare razy ) zaskakuje po pewnym czasie. Link do komentarza Share on other sites More sharing options...
rasta Maj 26, 2009 Udostępnij Maj 26, 2009 Może sprawdź działanie dla migania co 1+ sekundę? Wydaje mi się, że 1-15ms nie sprawia oku większej różnicy, chociaż to tylko spekulacje :] Którego przycisku? Link do komentarza Share on other sites More sharing options...
Turboasm Maj 26, 2009 Autor tematu Udostępnij Maj 26, 2009 który przycisk to już bez różnicy oba tak samo. między 1 a 15 ms jest różnica widoczna Link do komentarza Share on other sites More sharing options...
Nawyk Maj 26, 2009 Udostępnij Maj 26, 2009 Tak na marginesie - zwierasz przyciski do masy, uwzględniłeś drgania styków? 1 Link do komentarza Share on other sites More sharing options...
Turboasm Maj 27, 2009 Autor tematu Udostępnij Maj 27, 2009 jednak drgania styków były przyczyną złego działania. Dzieki za pomoc. Link do komentarza Share on other sites More sharing options...
Turboasm Lipiec 6, 2009 Autor tematu Udostępnij Lipiec 6, 2009 Aby nie zakładać nowego tematu odgrzewam ten. Jak rozwiązać problem aby po wciśnięciu przycisku zmienna X została zapamiętana w eeprom ( P ). $regfile = "attiny13.dat" $crystal = 1200000 Config Pinb.0 = Output Config Pinb.3 = Input Portb.3 = 1 Config Pinb.4 = Input Portb.4 = 1 Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down Start Timer0 Dim X As Byte Dim P As Eram Byte X = 50 Do If Pinb.4 = 0 Then Waitms 10 X = X + 10 End If If Pinb.3 = 0 Then Waitms 10 P = X End If Pwm0a = X Loop End Aby program po włączeniu zasilania nie wracał do ustawienia X = 50. Link do komentarza Share on other sites More sharing options...
mskojon Lipiec 7, 2009 Udostępnij Lipiec 7, 2009 Wpisz po prostu X = P. Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »