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

Kompilacja bas na hex - kto może przerobić?

bf199 09 Gru 2009 22:05 3482 23
  • #1 7368138
    bf199
    Poziom 20  
    Witam, potrzebuje gotowego wsadu do procka tzn już skompilowanego do postaci hex. Przerobiłby mi go ktoś??? Oto kod:



    'Jednopunktowy termometr z czujnikiem DS18B20
    'www.portalnaukowy.edu.pl
    'Program na podstawie kursu z ksišżki "Mikrokontrolery dla Poczštkujšcych" Pana Piotra Góreckiego

    $crystal = 4000000 'deklaracja częstotliwo�ci pracy kwarcu

    $regfile "attiny2313.dat" 'model procesora dla którego jest ten program
    Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia


    Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wej�cia magistrali 1-wire

    Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Napis As String * 5
    'Deklaracja wszystkich zmiennych potrzebnych do pracy programu

    Do
    1wreset 'reset
    1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
    1wwrite &H44 'dokonaj konwersji
    Waitms 750 'przeczekaj czas konwersji
    1wreset 'reset
    1wwrite &HCC 'rozkaz adresowy SKIP ROM
    1wwrite &HBE 'rozkaz funkcyjny - polecenie odczytu DS18x20
    Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty
    T = Odczyt(2) 'przepisz starszy bajt do zmiennej typu Integer
    Shift T , Left , 8 'przesuń ten bajt w lewo na wyższe pozycje
    T = T + Odczyt(1) 'przepisz - dodaj młodszy bajt

    T1 = T * 0.0625 'wyra� w stopniach Celsjusza, wynik wpisz do zmiennej Single

    Napis = Fusing(t1 , "#.#")
    Cls : Cursor Off : Lcd "* Temperatura *"
    Lowerline
    Lcd "Wynik: " ; Napis ; " " ; Chr(1) ; "C" 'wy�wietl wynik ze zmiennej Single
    Loop : End

    'Powodzenia
  • #4 7372176
    landy13
    Poziom 31  
    bf199 napisał:
    aa mógłby mi ktoś przerobić ten program na wyświetlacz 1X16 znaków?? bo on pasuje do 2x16, zamówiłem waśnie taki ale przysłali mi 1x16 no i mam problem:(
    To nie taka prosta sprawa. W programie brak konfiguracji wyświetlacza. Jeśli jej nie ma to ustawia się w opcjach Bascoma. Ciekawe co ustawił kolega Gienek? Do których pinów procesora zamierzasz podłączyć wyświetlacz? Bez tych informacji nikt Ci tego nie przerobi. Możesz też ściągnąć demo Bascoma i sam skompilować.
  • #5 7372261
    bf199
    Poziom 20  
    ale nie chodzi mi teraz o kompilacje tylko o przeróbkę kodu żeby był wyświetlany sam wynik w jednej lini bez dodatkowych opisów do których potrzebne były dwie linie. Projekt to:

    http://www.portalnaukowy.edu.pl/termometr_cyfr.htm
  • #6 7372296
    wader_669
    Poziom 28  
    landy13 napisał:
    To nie taka prosta sprawa.

    Prosze ciebie help-> config lcd
  • #8 7372387
    Gienek
    Poziom 37  
    Jeżeli posługuje się schematem montażowym, to podłączenie jest "klasyczne" - magistrala 4 bit. LCD podłączony standardowo do poru B. Ja skompilowałem dla 16*1, a więc tylko napis TEMPERATURA nie będzie widoczny.
  • #9 7373242
    bf199
    Poziom 20  
    teraz już jest wszystko w jednej lini, dziękuje;) ale mam jeszcze jeden problem, a mianowicie cały czas wyświetla mi coś takiego: "wynik: -0,1 stopni C, nawet gdy odepnę czujnik temperatury to się nic nie zmienia. Nie trzeba jeszcze czegoś przypadkiem ustawić przed kompilacją??? Wydaje mi się ze nie wykrywa czujnika wogóle. a podłączenie LCD mam tak jak na schemacie czyli:

    GDN- pin1
    Vcc-pin2
    Vo-pin3
    Rs-pin4
    Rw-pin5
    En-pin6
    D7-pin14
    D6-pin13
    D5-pin12
    D4-pin11
    no i podświetlanie
  • #10 7373377
    Gienek
    Poziom 37  
    LCD poprawnie podłączyłeś, procesor pracuje. Szukaj błędu w podłączeniu czujnika (czy jest sprawny ?)
    Zobacz czy sygnał z czujnika jest podawany na pin 9 procesora.
    Do tej pory nie wiadomo czy pracujesz na płytce testowej, czy zrobiłeś płytkę, która sugerował autor - dlatego "wróżymy".
  • #12 7373940
    wader_669
    Poziom 28  
    landy13 napisał:
    wader_669 Czy korzystając z helpa dowiesz się jak bf199 ma podłączony wyświetlacz?

    Oczywiscie, ze nie. A ty masz mu pisac gotowca?
  • #14 7375495
    Gienek
    Poziom 37  
    Jeżeli w obwodzie czujnika masz zamontowany ten rezystor 4k7, zamontowaną masz zworę pomiędzy tym rezystorem i pin 9 procesora (przy podłączonym zasilaniu na tym pinie powinno być +5V) oraz poprawnie zaprogramowałeś fuse bity - to układ powinien działać prawidłowo. Jeżeli dalej nie odczytuje temperatury, to stawiam na czujnik, że jest niesprawny.
  • #15 7376198
    bf199
    Poziom 20  
    a jak ustawić te fusebity? i w czym?

    Post był raportowany.
    Popraw błędy i interpunkcję WE WSZYSTKICH POSTACH . Użyj przycisku PISOWNIA -->REGULAMIN pkt 15.
    Początek zdania? Zaczynamy wielką literą.
    Następnym razem będzie UPOMNIENIE. [hefid]
  • #16 7376629
    Gienek
    Poziom 37  
    a jak ustawić te fusebity? i w czym?

    Takie pytanie zapiera dech. Tymczasem dokładnie przeczytaj ten wątek https://www.elektroda.pl/rtvforum/topic1068859.html
    Znajdziesz w nim wiele odpowiedzi na Twój problem.
    Radzę też pobrać wersję DEMO programu BASCOM-AVR ze strony http://www.mcselec.com/ i samemu spróbować się nim posłużyć.
    Poszukaj tam też helpa po polsku. Poczytaj ze zrozumieniem.
    Po tej lekturze będziesz wiedział jak i o co pytać.

    Brak wiedzy nie zwalnia od poprawności zadawania pytań. Nikt nie jest wróżką. Aby udzielić odpowiedzi muszą być znane pewne rzeczy. Jakim programatorem programowałeś procesor i jakiego oprogramowania używałeś?
  • #17 7377317
    bf199
    Poziom 20  
    Wiem, zielony jestem w programowaniu, umiem tylko skompilowac jakis kod i przeprzucic program na procka. takie tez mialem zalozenie biorac sie za ten projekt

    Dodano po 3 [godziny] 17 [minuty]:

    programator jakiego uzywam pochodzi z tego projektu:

    https://www.elektroda.pl/rtvforum/topic730390.html

    zaś posługuję się oprogramowaniem ponyprog2000 wersja 2,07a a co do linka do którego mnie skierowałeś, czytałem juz to wcześniej i nie bardzo znalazłem tam odpowiedz, tzn może i tam się znajduje ale nie umiem sobie z tym poradzić

    Dodano po 2 [godziny] 34 [minuty]:

    Ustawiałem fusebity i mi się jakoś procek zablokował, nie mogę z niego nic odczytać ani zapisać:(
  • #18 7378888
    Gienek
    Poziom 37  
    Po zapisaniu fuse bitów (robi sie to po zaprogramowaniu procesora) procesor będzie pracował poprawnie z kwarcem zewnętrznym. W Twoim programatorze brak kwarcu, dlatego nie masz komunikacji z procesorem.
    Włóż procesor do miernika temperatury i zobacz czy działa. Jeżeli nie, to musisz w programatorze podłączyć kwarc do pin 4 i 5 podłączyć kwarc lub na pin 4 procesora podać sygnał np. 1MHz z jakiegoś generatora. Wtedy możesz odblokować procesor (powrócić do ustawień fabrycznych) i zaprogramować go ponownie (najpierw wgrać właściwy program i na końcu ustawić fuse bity)

    Tu masz ustawione fuse bity:
    Kompilacja bas na hex - kto może przerobić?

    Dla kwarcu 4MHz:

    Kompilacja bas na hex - kto może przerobić?
  • #19 7379050
    bf199
    Poziom 20  
    Kupiłem kolejny, ale boje się że go stracę;p może mi ktoś powiedzieć które fusebity mam zaznaczyć a które zostawić w ponyprog??? żeby attiny pracował z zewnętrznym oscylatorem 4MHz, tak jak to jest przewidziane w tym termometrze??

    Dodano po 4 [godziny] 35 [minuty]:

    no tak są ustawione fusebity przy nowym attiny:) no ale jak je trzeba ustawić do zewnętrznego oscylatora 4Mhz??
  • Pomocny post
    #21 7382778
    Gienek
    Poziom 37  
    Tak to jest dla kwarcu (nie oscylatora).
    Może za mała wydajność prądowa zasilacza? A może kontrast za duży?
    Dzięki za punkty, ale to nie było konieczne. Wystarczyło kliknąć POMÓGŁ.
  • #22 7382889
    bf199
    Poziom 20  
    raczej duży kontrast wyświetlacza:) aa jak już jesteśmy w tym temacie to mógłbyś mi jeszcze wytłumaczyć jak się ustawia tą częstotliwość??? np jakbym kiedy chciał w innym urządzeniu dać np kwarc 8MHz??
  • #23 7387177
    manekinen
    Poziom 29  
    bf199 napisał:
    troszeczkę mi miga jak odświeża:)

    Wcale się nie dziwie, bo program jest napisany troche bezmyślnie...
    Co 750ms czyścisz niepotrzebnie wyświetlacz i stąd te migotanie...
    
    Cls
    Cursor Off
    Lcd "Wynik: " ; Napis ; " " ; Chr(1) ; "C" 
    

    Zmień na
    
    Locate 1,1
    Cursor Off
    Lcd "Wynik: " ; Napis ; " " ; Chr(1) ; "C" ; Spc(5)
    

    A zdania zaczynamy z wielkiej litery :)
REKLAMA