Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 21 sty 2025, o 11:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 2 lut 2013, o 14:51 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8597
Pomógł: 337

Postanowiłem jakoś uporządkować to wszystko dla potencjalnych Bascomowców
sam już się zresztą gubię w bascomie bo dawno go nie używałem -- siła ewolucji i został wyparty przez ARDUINO
do szybkiego sprawdzania koncepcji . Nie mniej warto to i owo sobie przypomnieć :)

Jedziemy:

Z wielu dziwnych zapytań wybór padła na 16 .... oto one

1. Jak deklarować zmienne?
2. Jak deklarować stałe?
3. Jak deklarować tablice?
4. Jak zrobić pętlę?
5. Jak deklarować i wywoływać podprogramy?
6. Jak sterować alfanumerycznym wyświetlaczem LCD?
7. Jak pisać warunki?
8. Jak zmienić nazwę zmiennych, stałych itp?
9. Jak wykonać pętle opóźnienia czasowego?
10. Jak obsługiwać przerwania?
11. Jak obsługiwać szynę I2C?
12. Jak wyeliminować drgania styków?
13. Co to jest wyświetlacz multipleksowy i jak nim sterować z poziomu Bascom'a?
14. Jak obsłużyć klawiaturę od PC'ta?
15. Jak zamienić liczbę na ciąg 01?
16. Jak obsłużyć impulsator?


------------------- ODPOWIEDZI ------------------------------

1. Jak deklarować zmienne?

DIM nazwa_zmiennej1 AS BIT - zakres zmiennej 0..1
DIM nazwa_zmiennej2 AS BYTE - zakres zmiennej 0..255
DIM nazwa_zmiennej3 AS WORD - zakres zmiennej
DIM nazwa_zmiennej4 AS INTEGER - zakres zmiennej -32767..32768
DIM nazwa_zmiennej5*10 AS STRING - zmienna tekstowa o długości w tym przypadku 10

2. Jak deklarować stałe?

CONST nazwa_stałej1 = &HF
CONST nazwa_stałej2 = -1000
CONST nazwa_stałej3 = 1.1
CONST nazwa_stałej4 = "tekst"

3. Jak deklarować tablice?

DIM nazwa_tablicy(ilość) AS rodzaj_zmiennej
nazwa_tablicy(5) = 146 'zapianie do 5 elementu tablicy liczby 146

4. Jak zrobić pętlę?

DO 'początek pętli
... 'operacje i polecenia wykonywane w pętli
LOOP 'koniec pętli i powrót do początku

5. Jak deklarować i wywoływać podprogramy?

Na początku programu wpisujemy deklaracje o podprogramie:

DECLARE SUB nazwa_podprogramu(zmienna AS typ_zmiennej)

A następnie w programie piszemy, co konkretnie podprogram ma wykonywać. Robimy to w następujący sposób:

SUB nazwa_podprogramu(zmienna AS typ_zmiennej) 'początek podprogramu
... 'operacje i polecenia wykonywane w pętli
END SUB 'koniec podprogramu

Aby wywołać podprogram piszemy:

CALL nazwa_podprogramu(zmienna)

Oczywiście, jeśli w podprogramie nie będziemy wykonywać jakichkolwiek operacji na zmiennej podawanej w nawiasie, nie deklarujemy tego na początku, a przy wywoływaniu podprogramu pomijamy zmienną.

6. Jak sterować alfanumerycznym wyświetlaczem LCD?

W Bascomie sterowanie wyświetlaczy alfanumerycznych LCD jest banalnie proste. Wystarczy tylko poinformować kompilator, do których linii portu będzie on podłączony (OPTIONS/COMPILER/LCD) i zadeklarować na początku programu rodzaj podłączanego wyświetlacza:

CONFIG LCD=ilość_znaków*ilość_linii

gdzie ilość znaków i ilośćlinii może być następująca: 40*4, 40*2, 16*1, 16*1a, 16*2, 16*4, 16*4, 20*2, 20*4,40*4a
W przypadku problemów ze sterowaniem 16*1 lub 40*4 należy zamienić je na 16*1a lub 40*4a
Bascom pozwala na wykonywanie następujących operacji na wyświetlaczu:

LCD "TEKST" 'wyświetlenie napisu TEKST
LCD zmienna 'wyświetlenie zmiennej
LCD "tekst"; zmienna 'wyświetlenie w jednej linii napisu TEKST i wartości zmiennej
CLS 'kasowanie wyświetlacz
CURSOR ON/OFF, BLINK/NOBLINK 'operacje na kursorze
gdzie ON/OFF - włącz lub wyłącz kursor, BLINK/NOBLINK - włącz lub wyłącz miganie kursora, polecenia ta mogą działać oddzielnie, czyli możemy np. napisać:
CURSOR BLINK
LOCATE linia,pozycja_kursora 'ustawienie kursora na linii i pozycji
SHIFTCURSOR LEFT/RIGHT 'przesuwanie kursora w lewo lub wprawo
SHIFTLCD LEFT/RIGHT 'przesuwanie tekstu w lewo lub w prawo
DISPLAY ON/OFF 'włączenie lub wyłączenie wyświetlacza
UPPERLINE 'przejście kursora do wyższej linii
LOWERLINE 'przejście kursora do niższej linii
THIRDLINE 'przejście kursora do trzeciej linii
FOURTHLINE 'przejście kursora do czwartej linii
DEFLCDCHAR numer_banku , 31 , 17 , 17 , 17 , 17 , 17 , 31 , 0 ' deklarowanie własnego znaku np. polskich liter, gdzie numer_banku: 0..7. Aby stworzyć dowolny znak należy wybrać z menu TOOLS/LCD DESIGNER, a następnie narysować żądany znak. Bascom automatycznie wstawi polecenie DEFLCDCHAR do programu. My tylko musimy podać numer banku.

7. Jak pisać warunki?

IF zdarzenie THEN
... 'to co ma się zdarzyć jeśli warunek będzie spełniony
ELSE
... 'to co ma się zdarzyć jeśli warunek nie będzie spełniony
END IF 'koniec warunku
Zdarzenie może mieć następującą postać:
zmienna = 0 'jeśli zmienna będzie równa zero
P1.0 = 1 'jeśli bit 0 portu P1 będzie równy jeden
PRZYKŁAD:
'Chcemy zliczać sekundy w pętli
DIM sekundy AS BYTE 'deklaracja zmiennej sekundy
DO 'początek pętli
INCR sekundy 'zwiększenie o 1 zmiennej sekundy
IF sekundy = 60 THEN 'jeśli sekundy = 60 to
sekundy = 0 'wyzeruj sekundy
END IF 'koniec warunku przepełnienia
LOOP 'zapętlenie - skok do DO
Pewnie się zastanawiasz co trzeba zrobić, aby zliczać jeszcze minuty, godziny, czy nawet dni. Odpowiedź jest bardzo prosta. W warunku przepełnienia (if sekundy =60 then) wpisujemy polecenia od INCR do END IF odwołując się do minut. Następnie w warunku przepełnienia minut wpisujemy to samo odnośnie godzin itd.

8. Jak zmienić nazwę zmiennych, stałych itp?

nowa_nazwa ALIAS stara_nazwa
To polecenie jest bardzo przydatne, gdyż możemy nazwać np. bity portów w zależności od funkcji jakie pełnią np. chcemy za pomocą P3.7 sterować buzzerem możemy więc zmienić nazwę P3.7 na BUZZER, a nastepnie odwoływać się do nowej nazwy. Wygląda to tak:
BUZZER ALIAS P3.7
RESET BUZZER 'wyzerowanie BUZZER, a właściwie P3.7
WAIT 1 'poczekaj 1 sekundę
SET BUZZER 'ustawienie 1 na P3.7

9. Jak wykonać pętle opóźnienia czasowego?

DELAY 'opóźnienie ok. 100us
WAITMS milisekundy 'opóżnienie w milisekundach 0..255
WAIT sekundy 'opóźnienie w sekundach

10. Jak obsługiwać przerwania?

ENABLE INT0 'zezwolenie na przerwanie z INT0, zamiast INT0 możemy wpisać: INT1, SERIAL, TIMER0, TIMER1,TIMER2, a nawet INT3, INT4, INT5, INT6, INT7, INT8 , CAN. Zależy to oczywiście od używanego mikroprocesora.
ON INT0 podprogram 'poinformowanie kompilatora, który podprogram ma być wywoływany przy przerwaniu
ENABLE INTERRUPTS 'odblokowanie układu przerwań
DIASBLE INT0 'wyłączenie przerwania

11. Jak obsługiwać szynę I2C?

Na początku musisz zadeklarować, które bity portu będą pełnić funkcje linii danych SDA i linii zegarowej SCL.
CONFIG SDA = P1.0
CONFIG SCL = P1.1
Potem w programie:
I2CSTART 'warunek startu szyny
I2CWBYTE zmienna, ACK/NOACK 'zapis zmiennej z potwierdzeniem (ACK) lub bez
I2CRBYTE zmienna, ACK/NOACK 'odczyt zmiennej z potwierdzeniem (ACK) lub bez
I2CSTOP 'warunek stopu szyny

12. Jak wyeliminować drgania styków?

Drgania styków można wyeliminować w dwojaki sposób:
- sprzętowo poprzez dodanie kondensatorów zwierających
- programowo: poprzez dwukrotne sprawdzanie stanu przycisku z odstępem czasu między nimi. Wygląda to tak:

IF P1.0 = 0 THEN 'jeśli P1.0 = 0 to
WAITMS 30 'poczekaj 30 milisekund
IF P1.0 = 0 THEN 'sprawdź po raz drugi, czy P1.0 = 0 i jeśli tak to
CALL podprogram 'wywołaj podprogram
END IF 'koniec drugiego warunku
END IF 'koniec pierwszego warunku

13. Co to jest wyświetlacz multipleksowy i jak nim sterować z poziomu Bascom'a?

Wyświetlacz multipleksowy to taki, w którym wykorzystuje się bezwładność ludzkiego oka sterując w jednej chwili tylko jednym znakiem na wyświetlaczu. Poprzez szybkie włączanie i wyłączanie kolejnych znaków uzyskuje się efekt świecenia wszystkich znaków.W przypadku wyświetlaczy LED robi się to w następujący sposób: każdy segment jednej cyfry łączymy z takim samym segmentem drugiej cyfry itd. W przypadku techniki mikroprocesorowej będą to najczęściej katody, gdyż wydajność prądowa portu jest dla "0" logicznego. Połączone segmenty łączy się z wybranymi bitami portu. Anody wyświetlaczy muszą być załączane z drugiego portu np. P3 poprzez tranzystory PNP. Sterowanie odbywa się w następujący sposób przy założeniu, że na początku wszystkie wyświetlacze są wyłączone:

- ustaw na porcie P1 to co ma być wyświetlone na pierwszym pojedyńczym wyświetlaczu,
- włącz pierwszy wyświetlacz,
- poczekaj chwilę
- wyłącz pierwszy wyświetlacz
- ustaw na porcie P1 to co ma być wyświetlone na drugim pojedyńczym wyświetlaczu,
- włącz drugi wyświetlacz,
- poczekaj chwilę,
- wyłącz drugi wyświetlacz
- ...
- skocz do początku

Przykładowy program:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


14. Jak obsłużyć klawiaturę od PC'ta?

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


15. Jak zamienić liczbę na ciąg 01?

Nazwa_zmiennej.numer_bitu = 1 'ustawienie bitu o numerze = numer_bitu.
Print Nazwa_zmiennej.numer_bitu 'wysłanie po RS' bitu o numerze = numer_bitu.
Gdzie numer_bitu liczymy od 0 (najmniej znaczący bit).

PRZYKŁAD:

Chcemy wyświetlić na wyświetlaczu LCD 8 bitów liczby
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jeśli dla wartości poszczególnych bitów będziemy wykonywać inne czynności to musimy jeszcze dodać warunki na wartość zmiennej i. Można to zrobić za pomocą IF bądź CASE. Jest to najlepszy sposób na definiowanie ustawień w naszym urządzeniu. Jeśli np bit 5 zmiennej ustawienia ma wartość 1 to znaczy, że np budzik jest włączony.

16. Jak obsłużyć impulsator?

Przykład z listy dyskusyjnej bascoma

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Może się to komyś przyda ....

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2013, o 15:10 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

O! jaki expresowy poradnik do Bascoma ;) SZOK! .... Sun ty to masz fajne pomysły.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2013, o 15:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 lip 2012
Posty: 157
Pomógł: 8

Tez kiedyś zaczynałem karierę w Bascom. No nie powiem szlo nawet dobrze. Po czasie stwierdziłem że czas na przesiadkę na C. Oj i tee moje walki z tym językiem. Książek przeróżnych chyba z 5, stron www setki i stwierdziłem ze wracam do punktu wyjścia czyli Bascom. Na szczęście w moje ręce wpadła niebieska książeczka wydawnictwa ATNEL (nie mylić z inną niebieską książką na temat j. C którą również posiadam) Pierwsze wrażenie ojj jakieś volatile, struktury, wskaźniki a do tego jeszcze własne biblioteki obsługi różnych modułów ??? omg! I teraz cenna uwaga dla czytających ten topic. Bajki piszę w ostatnim zdaniu. Wszystko świetnie wyjaśnione.W ogóle to teraz się zastanawiam dlaczego nie od razu C. A no dla tego że nie było odpowiedniej literatury czyli tego niebieskiego booka. Zachęcam wszystkich bascomowiczów na taką przesiadkę. Naprawdę warto.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sie 2013, o 18:38 
Offline
Użytkownik

Dołączył(a): 29 cze 2013
Posty: 209
Lokalizacja: Tarnowskie Góry
Pomógł: 0

k_mirek napisał(a):
Tez kiedyś zaczynałem karierę w Bascom. No nie powiem szlo nawet dobrze. Po czasie stwierdziłem że czas na przesiadkę na C. Oj i tee moje walki z tym językiem. Książek przeróżnych chyba z 5, stron www setki i stwierdziłem ze wracam do punktu wyjścia czyli Bascom. Na szczęście w moje ręce wpadła niebieska książeczka wydawnictwa ATNEL (nie mylić z inną niebieską książką na temat j. C którą również posiadam) Pierwsze wrażenie ojj jakieś volatile, struktury, wskaźniki a do tego jeszcze własne biblioteki obsługi różnych modułów ??? omg! I teraz cenna uwaga dla czytających ten topic. Bajki piszę w ostatnim zdaniu. Wszystko świetnie wyjaśnione.W ogóle to teraz się zastanawiam dlaczego nie od razu C. A no dla tego że nie było odpowiedniej literatury czyli tego niebieskiego booka. Zachęcam wszystkich bascomowiczów na taką przesiadkę. Naprawdę warto.



I tu pojawia się problem bo Mi osobiście ciężko jest się przesiąść z bascoma na C. Nawet kupiłem sobie "niebieską" książkę przeczytałem połowę i mam mętlik w głowie...
Żałuje że od razu nie wziąłem się za C na bank było by mi teraz łatwiej

------------------------ [ Dodano po: 19 minutach ]

k_mirek napisał(a):
Tez kiedyś zaczynałem karierę w Bascom. No nie powiem szlo nawet dobrze. Po czasie stwierdziłem że czas na przesiadkę na C. Oj i tee moje walki z tym językiem. Książek przeróżnych chyba z 5, stron www setki i stwierdziłem ze wracam do punktu wyjścia czyli Bascom. Na szczęście w moje ręce wpadła niebieska książeczka wydawnictwa ATNEL (nie mylić z inną niebieską książką na temat j. C którą również posiadam) Pierwsze wrażenie ojj jakieś volatile, struktury, wskaźniki a do tego jeszcze własne biblioteki obsługi różnych modułów ??? omg! I teraz cenna uwaga dla czytających ten topic. Bajki piszę w ostatnim zdaniu. Wszystko świetnie wyjaśnione.W ogóle to teraz się zastanawiam dlaczego nie od razu C. A no dla tego że nie było odpowiedniej literatury czyli tego niebieskiego booka. Zachęcam wszystkich bascomowiczów na taką przesiadkę. Naprawdę warto.



I tu pojawia się problem bo Mi osobiście ciężko jest się przesiąść z bascoma na C. Nawet kupiłem sobie "niebieską" książkę przeczytałem połowę i mam mętlik w głowie...
Żałuje że od razu nie wziąłem się za C na bank było by mi teraz łatwiej



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 22:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2013
Posty: 844
Lokalizacja: Przemyśl
Zbananowany użytkownik

Pomógł: 43

Nie tylko tobie ;)

Ale wbrew pozorom da się- tylko trzeba mocno sobie postanowić żeby w czasie nauki używać jednego języka- jak ja- na bascoma nie patrzę już parę miesięcy ;)

_________________
Klimatyzacja Przemyśl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO