Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pico Blaze (assembler) - jak zczytać stany wejść

madiz08 19 Lis 2014 11:02 693 2
  • #1 19 Lis 2014 11:02
    madiz08
    Poziom 14  

    Witam
    Czy ktoś może miał styczność z tym mikrokontrolerem? Na drugim roku studiów zaczynamy z mikrokontrolerami co mnie bardzo interesuje, ale wykładowca przedstawił PicoBlaze, który ma bardzo małe zasoby i podobno można go programować jedynie w jego własnym języku assembler. Na razie tak patrzę sobie na symilatorze do pobrania ze strony http://www.mediatronix.com/pages/pBlazIDE
    (1,45MB) i mam problem z portem wejściowym:

    Kod: asm
    Zaloguj się, aby zobaczyć kod

    Pico Blaze (assembler) - jak zczytać stany wejść

    Chciałem napisać programik coś na zasadzie jak w C
    Kod: c
    Zaloguj się, aby zobaczyć kod
    gdzie D jest wyjściowy, a B wejściowy
    i myślałem, że po wciśnięciu przycisku dana dioda się zaświeci, program został skompilowany bez błędów, ale tego efektu nie ma, dlatego poprosiłbym o pomoc jak odczytywać port wejściowy.


    No i może jeszcze zapytam, czy uważacie że warto się zaangażować w naukę programowania na tym mikrokontroleże, czy raczej nie ma to sensu? Bo powiem, że tak na pierwszy rzut oka (może się mylę) to programowanie w tym assemblerze w porównaniu do C czy Bascoma to koszmar, znaczy trzeba napisać znacznie więcej linijek, żeby uzyskać ten sam efekt. Jak zapytałem jakie jest polecenie WAIT czy _delay_ms() to facet powiedział, że nie ma czegoś takiego i opóźnienie robi się na powtarzaniu cykli. Jak mam zadanie na projekt żeby zrobić sygnalizację świetlną to aż 3 bajty zużywam ma procedurę "czekaj":
    Kod: asm
    Zaloguj się, aby zobaczyć kod

    Zmiany wartości liczbowych, można robić tylko chyba na 16 rejestrach, no i bardzo małe zasoby: 64B RAM, 1kB flasch także niczego poważnego chyba na tym nie zrobię

    Dlatego czy w tych czasach, gdzie atmegę8 z o wiele większymi zasobami mogę kupić na 5zł, to czy warto uczyć się PicoBlaze, czy poprostu zaliczyć przedmiot i zapomnieć.

    0 2
  • Pomocny post
    #2 19 Lis 2014 13:08
    hejny
    Poziom 1  

    zdrowie
    dotyczące Picoblaze. Myślę, że wina leży w tym, że dajesz instrukcje za pomocą LOAD zamiast rejesteru port. Należy zdefiniować "Przycisk" jako constant lub używać rejestru (s1, s2, itd.).
    Przycisk EQU "wartość"

    Port wejścia:
    LOAD s0, przyciski
    OUT s0, leds

    czytaj portu:
    IN s0, leds

    W Twoim miejscu, nie będę używać pblaz ide. To jest przestarzałe i głupie. Możesz użyć MDS (Szukaj w Google moravia-microsystems ide), który jest mądrzejszy i ma darmową wersję. Oni również symulacji LED, gdzie można go spróbować.Wadą jest to, że mają trochę inny syntax assemblera, ale na przykładzie lub instrukcji, powinien to opanujesz

    0
  • #3 19 Lis 2014 14:20
    madiz08
    Poziom 14  

    A mógłbyś mi wytłumaczyć znaczenie IN s0, leds , bo nie rozumiem tego i dalej nie mogę tego poskładać żeby działało.
    PBlazeIDE to program, na którym mam to wykonać, taki sobie wybrał wykładowca i jeżeli nie warto zagłębiać się w ten mikrokontroler to już nie będę ściągał innych programów.

    Dodano po 6 [minuty]:

    NIE!!, przepraszam, już mam

    Kod: asm
    Zaloguj się, aby zobaczyć kod


    juz teraz wiem, żeby wprowadzić wartość portu do rejestru, należy użyć IN.
    Dziękuję za pomoc, jeżeli miałbym jeszcze jakiś problem z tym asemblerem, pozwolę sobie tu napisać

    0