Skocz do zawartości
Turboasm

[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 ?

Udostępnij ten post


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

Udostępnij ten post


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.

Udostępnij ten post


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.

Udostępnij ten post


Link to post
Share on other sites

tylko że chodzi mi o zmiany od 1 do max 15 ms

Udostępnij ten post


Link to post
Share on other sites

A skąd wieszczy działa czy nie?

Może za duży/mały rezystor?

Udostępnij ten post


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.

Udostępnij ten post


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?

Udostępnij ten post


Link to post
Share on other sites

który przycisk to już bez różnicy oba tak samo. między 1 a 15 ms jest różnica widoczna

Udostępnij ten post


Link to post
Share on other sites

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

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

jednak drgania styków były przyczyną złego działania. Dzieki za pomoc.

Udostępnij ten post


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.

Udostępnij ten post


Link to post
Share on other sites

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