FAQ | Points | Add... | Recent posts | Search | Register | Log in


Prosty programik w BASCOM proszę o pomoc.


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> Prosty programik w BASCOM proszę o pomoc.
Author
Message
Bartek47
Poziom 9
Poziom 9


Joined: 21 Aug 2009
Posts: 44

Post#1 Post from the author of the topic 28 Feb 2010 20:55   

Prosty programik w BASCOM proszę o pomoc.


Chodzi mi o to żeby jednym przyciskiem uruchamiać
Rotate Portb , Left
A drugim
Rotate Portb , Right

Tylko żeby to się zapętlało a nie działało tylko wtedy gdy się trzyma przycisk tylko włączało się na stałe

Przyjmijmy że jeden przycisk to Pind.4 a drugi Pind.5.

$regfile = "attiny2313.dat" 'określenie uc
$crystal = 1000000 'okreslenie kwarcu

Config Portb = &B11111111 'wszytskie jako wyjścia
Portb = &B00000001 'wszędzie stan spoczynkowy 1
Config Portd = &B00000000
Portd = &B11111111

Code:
Do
If Pind.4 = 0 Then
Rotate Portb , Left
Waitms 950
End If
If Pind.5 = 0 Then
Rotate Portb , Right
Waitms 950
End If
Loop

Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 28 Feb 2010 20:55   





Back to top
   
atom1477
Poziom 25
Poziom 25


Joined: 14 Jul 2005
Posts: 6596

Post#2 28 Feb 2010 20:59helpful post - solution   

Re: Prosty programik w BASCOM proszę o pomoc.


Code:
Dim State As Byte
Dim I As Byte

Do
    For I = 0 To 100
        If Pind.4 = 0 Then
            State = 0
        End If

        If Pind.5 = 0 Then
            State = 1
        End If

        Waitms 10
    Next I


    If State = 0 Then
        Rotate Portb , Left
    Else
        Rotate Portb , Right
    End If
Loop

Back to top
   
Google

Google Adsense


Post# 28 Feb 2010 20:59helpful post - solution   





Back to top
   
Bartek47
Poziom 9
Poziom 9


Joined: 21 Aug 2009
Posts: 44

Post#3 Post from the author of the topic 28 Feb 2010 22:14   

Re: Prosty programik w BASCOM proszę o pomoc.


Działa dzięki!

A mógłby mi ktoś wytłumaczyć o co tutaj chodzi
For I = 0 To 100
Next I
??
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 28 Feb 2010 22:14   





Back to top
   
atom1477
Poziom 25
Poziom 25


Joined: 14 Jul 2005
Posts: 6596

Post#4 28 Feb 2010 22:51   

Re: Prosty programik w BASCOM proszę o pomoc.


Ta pętla nie jest konieczna.
Dodałem ją żeby przyciski działały cały czas.
Bo jak byś napisał Waitms 1000 to przez całe 1000ms przyciski by nie działały.
A tak w pętli co raz masz sprawdzenie przycisków i odmierzanie czasu 10ms.
Czyli łączenie te 1000ms i tak uzyskasz a przy okazji przyciski będą normalnie działały.
Back to top
   
M. S.
Poziom 22
Poziom 22


Joined: 12 Jan 2005
Posts: 1508
Location: Czechowice - Dziedzice

Post#5 01 Mar 2010 00:08   

Re: Prosty programik w BASCOM proszę o pomoc.


Quote:
Dodałem ją żeby przyciski działały cały czas.


Tylko po co sprawdzać przyciski jeśli efektu tego sprawdzenia nie będzie? Jedyne co można osiągnąć w ten sposób to umożliwienie zmiany decyzji w trakcie trwania pętli for, w którą stronę nastąpi ROTATE po zakończeniu tej pętli. Wykonane zostanie ostatnie naciśnięcie przycisku.

Dodano po 3 [minuty]:

Quote:
Dodałem ją żeby przyciski działały cały czas.


Tylko po co sprawdzać przyciski jeśli efektu tego sprawdzenia nie będzie? Jedyne co można osiągnąć w ten sposób to umożliwienie zmiany decyzji w trakcie trwania pętli for, w którą stronę nastąpi ROTATE po zakończeniu tej pętli. Wykonane zostanie ostatnie naciśnięcie przycisku. Na szczęście to tylko sekunda.
Back to top
   
atom1477
Poziom 25
Poziom 25


Joined: 14 Jul 2005
Posts: 6596

Post#6 01 Mar 2010 00:43   

Re: Prosty programik w BASCOM proszę o pomoc.


No i właśnie taki był cel. Inaczej przycisk musiał by być trzymany aż nastąpi moment zmiany stanu na porcie (a także wykonanie reszty kodu poza waitmsem 1000 więc i sprawdzenie przycisków).
Przecież każde menu jest tak rozwiązane. Nawet kliknięcie myszką na coś na pulpicie. Nie musisz trzymać aż zadziała. Klikasz raz a dalej włącza się samo. Czasami bardzo długo. Ale trzymać przez ten cały czas już nie musisz.
Back to top
   
Google

Google Adsense


Post# 01 Mar 2010 00:43   





Back to top
   
M. S.
Poziom 22
Poziom 22


Joined: 12 Jan 2005
Posts: 1508
Location: Czechowice - Dziedzice

Post#7 01 Mar 2010 13:56   

Re: Prosty programik w BASCOM proszę o pomoc.


Ok. Jednak naciśnięcie przycisku bez wywołania reakcji (potwierdzenia) jest co nieco denerwujące. Przydałaby się jakaś dioda led albo sygnał dźwiękowy. Podpowiem, że w tym przypadku prosiłoby się też użycie przerwań zewnętrznych. W końcu płacąc za procesor płacimy za cały sprzęt.
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> Prosty programik w BASCOM proszę o pomoc.
Page 1 of 1
Similar topics
Prosty programik w java (4)
Prosty programik w C, problem (9)
EvB 4.3 ( ATmega 32 ) - odwoływania w BASCOM -proszę o pomoc (10)
[Bascom] Bardzo proszę o pomoc w uporządkowaniu programu (10)
BASCOM AVR- proszę o pomoc (9)
msp430 prosty kalkulator proszę o pomoc (5)
Prosty program w c++ z printf proszę pomoc (7)
Prośba o prosty programik (BASCOM) M16 (35)
Bascom opis kilku komend potrzebny. Proszę o pomoc (3)
[ATMEGA8] [BASCOM] proszę o pomoc - procedura "włącz/wy (3)

Page generation time: 0.086 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed