logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Bascom] Niedziałający kod - biegnące światełko

maystero 24 Mar 2010 13:24 1481 5
  • #1 7874052
    maystero
    Poziom 24  
    Witam.
    Uczę się (staram sie) programowania w BASCOM. Orłem nie jestem. Do nauki używam książkę "Marcina Wiązania - Programowanie mikrokontrolerow AVR w jezyku Bascom". Pierwsza lekcja opisuje prosty kod:
    
    $SIM								'dyrektywa opuszczenia instrukcji 
    									'opóźnienia
    $REGFILE = "m8def.dat"				'informuje kompilator o pliku
    									'dyrektyw mikrokontrolera
    $CRYSTAL = 8000000					'informuje kompilator o częstotliwości 
    									'oscylatora taktującego 
    									'mikrokontroler
    Config Portd = Output 				'wszystkie linie portu D 
    									'jako wyjściowe
    Config Pinb.0 = Input				'linia PB0 jako wejściowa
    
    Dim Kierunek As Bit					'pomocnicza zmienna bitowa
    
    Przycisk Alias Pinb.0				'przypisanie zastępczej Przycisk 
    									'nazwy dla Pinb.0
    
    Set Portb.0							'włączenie rezystora podciągającego
    									'do linii PB0
    Portd = &B11111110					'wpisanie wartości 254 do portu D
    Reset Kierunek						'zerowanie zmiennej określającej
    									'kierunek zaświecania diod LED
    Do									'początek pętli nieskończonej
    	If Przycisk = 0 Then			'jeśli przycisk naciśniety, to
    		Waitms 50					'odczekaj 50 ms
    		Toggle Kierunek				'zmień stan na przeciwny 
    									'zmiennej bitowej Kierunek
    		Do							'pętla do wykonywana, aż
    		Loop Until Przycisk = 1		'do puszczenia przycisku
    	End If							'koniec instrukcji warunkowej
    	If Kierunek = 1 Then			'jeżeli zmienna Kierunek=1, to
    		Rotate Portd , Left			'przesuwaj wpisane wartości do 
    									'portu D w lewo
    	Else							'w przeciwnym wypadku
    		Rotate Portd , Right		'przesuwaj wpisane wartości do 
    									'portu D w prawo
    	End If							'koniec warunku
    	Waitms 100						'czekaj 100 ms
    Loop								'koniec pętli głównej programu
    End									'koniec programu
     


    który ma symulować biegnące światełko, a przycisk ma zmieniać kierunek "lewo-prawo".
    Początkowo myślałem że źle przepisałem z książki kod, więc znalazłem źródła na stronie wydawcy książki i problem jest identyczny!!
    po skompilowaniu i wgraniu BIN-a do Atmega świecą się zawsze wszystkie LED-y.
    Do testów używam ZL2AVR v.2. Płytka sprawna bo inne źródła po skompilowaniu działają OK.
    proszę o pomoc boo już mi sił brakuje :(
  • #3 7875005
    maystero
    Poziom 24  
    działa!! :D

    Mimitron możesz mi wyjaśnić "czemu" ?
  • #4 7875074
    polprzewodnikowy
    Poziom 26  
    Proszę abyś przeczytał komentarz przy dyrektywie $sim. Stosuje się ją gdy chcesz przetestować program w Bascomowym symulatorze.
  • #5 7875094
    maystero
    Poziom 24  
    polprzewodnikowy napisał:
    Proszę abyś przeczytał komentarz przy dyrektywie $sim. Stosuje się ją gdy chcesz przetestować program w Bascomowym symulatorze.

    acha
    (muszę sie jeszcze duuuużo nauczyć)
  • #6 7875214
    tadzik85
    Poziom 38  
    Naprawdę czytanie helpa wystarczy by zrozumieć w stopniu dobrym BASCOMA. W sieci nawet polski help krąż oraz wiele kursów.
REKLAMA