Przycisk (if ... then)

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
astony
-
Posty: 12
Rejestracja: 08 mar 2006, 0:52
Lokalizacja: zapytaj
Kontakt:

Przycisk (if ... then)

Post autor: astony » 07 wrz 2009, 8:44

Witam.
Układam programik i mam problem nr35

Kod: Zaznacz cały

If R_in = 255 Then
 R_in = 47
End If * to działa

If Pind 1 = 0 Then * a to nie
R_in = R_in + 1
Waitms 50
If Pind. 1 = 0 Then * i to też nie
R_in = R_in + 10
End If
End If
Bascom twierdzi że w linii if pind.1 =0 potrzebuję trzeciego parametru.
O co chodzi? :twisted:

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 07 wrz 2009, 9:26

W pierwszym Pind zjadłeś kropkę.

astony
-
Posty: 12
Rejestracja: 08 mar 2006, 0:52
Lokalizacja: zapytaj
Kontakt:

Post autor: astony » 07 wrz 2009, 9:33

Byla kropka, był przecinek - > pozostala spacja :(

Spacja przed 1 powodowala problem
Dzięki

[ Dodano: 2009-09-07, 11:29 ]
Problemu ciąg dalszy

Kod: Zaznacz cały

Goto Ruszaj

Pisz:
R_in = R_fakt
Writeeeprom R_in , 5
Return

Ruszaj:
R_fakt = 47
Do
Readeeprom R_in , 5
If R_in = 255 Then
Gosub Pisz
If R_in <> R_fakt Then
Gosub Pisz
End If
End If
Bascom w symulacji nie chce sprawdzić warunku
if r_in <> r_fakt then
Czy to taka norma dla Bascoma?

[ Dodano: 2009-09-07, 11:48 ]
Już zrobiłem.
Rozdzielenie if'ów pomogło :)

[ Dodano: 2009-09-07, 12:17 ]
To nie koniec :(
Potrzebuję jeszcze wykonać procedurkę , która bada przycisk.
Przy krótkim przyciśnięciu wartość wzrasta o 1 , a przy dłuższym o 10.
Zrobilem 10 razy if pind,1=0, ale to strasznie głupio wygląda :oops:
Wiem ze można jakąś pętlą, niestety dopiero raczkuje w te klocki.
Ma ktoś jakiś pomysl?

aktus
Użytkownik
Posty: 379
Rejestracja: 06 sie 2007, 20:44
Lokalizacja: Tychy

Post autor: aktus » 09 wrz 2009, 21:05

Może

Kod: Zaznacz cały

If (Pind.1 = 0) Then

astony
-
Posty: 12
Rejestracja: 08 mar 2006, 0:52
Lokalizacja: zapytaj
Kontakt:

Post autor: astony » 12 wrz 2009, 11:35

Z tą wersją pomysłu dalem spokój.
Kolejny problem to pętelka :) :

Kod: Zaznacz cały

Channel1 = 0                                                ' napięcie wyjściowe
Channel2 = 1                                                'pobór prądu - spadek na oporze
Channel3 = 2                                                'ograniczenie prądowe
For A = 1 To 3 Step 1
V(a) = Getadc(channela)
Next A
Nie wiem gdzie jest ten PROSTY byk? :oops:
Help -please :lol:

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 19 wrz 2009, 16:14

Może tak:

Kod: Zaznacz cały

Channel(1) = 0 
Channel(2) = 1 
Channel(3) = 2 
For A = 1 To 3 Step 1
V(a) = Getadc(channel(a))
Next A

ODPOWIEDZ