Skocz do zawartości

[bascom] Problem z kodem


Pomocna odpowiedź

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 to post
Share on other sites
$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
Link to post
Share on other sites

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 to post
Share on other sites

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 to post
Share on other sites

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 to post
Share on other sites

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 to post
Share on other sites

Tak na marginesie - zwierasz przyciski do masy, uwzględniłeś drgania styków?

  • Lubię! 1
Link to post
Share on other sites

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 to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.