Skocz do zawartości

Pomocna odpowiedź

Napisano

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 ?

$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.

  • Lubię! 1

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.

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.

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.

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?

  • 1 miesiąc później...

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.

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ę »
×
×
  • Utwórz nowe...