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

Jak zaadaptować program z 89c2051 na Atmega8 w Bascom?

stoper17 23 Lut 2013 21:31 2502 14
REKLAMA
  • #1 11977342
    stoper17
    Poziom 20  
    Witam, mam problem z dopasowaniem programu na swoje potrzeby. Nie posiadam mikrokontrolera 89c2051 dla którego został stworzony owy program, programatora tym bardziej. Mam za to atmege8 do której chciałbym wszystko zaadoptować.
    Program źródłowy:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    A to zmieniony przez mnie. Głównie chodzi mi o dopasowanie protów.
    Kod: text
    Zaloguj się, aby zobaczyć kod


    I niestety program nie chce mi tego skompilować. Dlaczego?
    Jak zaadaptować program z 89c2051 na Atmega8 w Bascom?
  • REKLAMA
  • Pomocny post
    #2 11977507
    Mundi1970
    Poziom 24  
    Dir jest instrukcją w Bascom'e, zmienna nie może mieć takiej nazwy. Zmień w całym programie nazwę zmiennej Dir np. na Dir2. Dodaj deklaracje procedury Ddelay.
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 11977697
    stoper17
    Poziom 20  
    bardzo dziękuje :D w tygodniu przetestuje.

    Czy dużym utrudnieniem będzie wprowadzić do programu możliwość sterowania 2 silnikami? chodzi mi dokładnie o
    l1,l2,l3,l4;p1,p2,p3,p4 czyli przed średnikiem dane dla silnika nr 1 i każda komenda po przecinku jest wykonywana np po upływie 10s, i tak samo za średnikiem dla silnika nr2.

    ew. proszę o podanie przykładu podobnego programu, lub kierunek w jakim iść by stworzyć taki program. Pozdrawiam
  • #4 11982120
    stoper17
    Poziom 20  
    trochę nakombinowałem i coś działa. Problem tylko mam z samą początkową deklaracją danych. Na chwilę obecną mogę podać 1 parametr dla silnika nr1 i 1 parametr dla silnika nr 2 :

    Kod: text
    Zaloguj się, aby zobaczyć kod


    A bardzo by mi zależało by na początku zadeklarować ilość danych dla poszczególnego silnika a przy jego realizowaniu, silniki pracowały równocześnie na zasadzie:

    silnik nr1 -l1,l3,l2,l5
    silnik nr2 -p1,p3,p2,p5

    Proszę o pomoc
  • Pomocny post
    #5 11984562
    Mundi1970
    Poziom 24  
    Można zwiększyć bufor dla danych wejściowych i funkcjami Charpos, Mid pobierać dane dla silników. Charpos wyszukuje określony znak w łańcuchu i zwraca jego pozycje. Do wyszukiwania słów "silnik" można użyć funkcję InStr.
    Mały przykład wykorzystujący Charpos, format wprowadzanych danych p100,l99,p43;l999,l1,p4; średnik też musi być na końcu danych. Program nie jest odporny na błędnie wprowadzane dane :):

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #6 11996950
    stoper17
    Poziom 20  
    Sprawdziłem pierwszy program, działa wyśmienicie :D. Jutro sprawdzę drugi programik.
    A tak na boku Mundi1970 gdzie można się nauczyć tak bez większych problemów pisać w bascomie. Pytam bo, czuje że zostanę dłużej przy zagadnieniu silników krokowych, a jakiekolwiek założenie kończy się kolejnym znakiem zapytania, a głupio tak z każdym problemem biec do elektrody. Może jakaś sprawdzona literatura? Pozdrawiam
  • #7 12000883
    stoper17
    Poziom 20  
    Wszystko ładnie wklepałem i :( błąd Jak zaadaptować program z 89c2051 na Atmega8 w Bascom?

    te linie które mu nie pasują :cry:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Kod: text
    Zaloguj się, aby zobaczyć kod


    Proszę o pomoc
  • REKLAMA
  • #8 12000929
    Mundi1970
    Poziom 24  
    Na początku programu masz zdefiniowane takie zmienne?:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #9 12001068
    stoper17
    Poziom 20  
    Oczywiście. Całość wygląda tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #10 12023752
    sp3ots
    Poziom 38  
    Witam !
    Brakuje deklaracji zmiennych: R, obr, x
    Brak deklaracji podprogramu: "Prawo" i wielu innych podprogramów.
    Pozdrawiam. Stefan
  • #11 12024334
    stoper17
    Poziom 20  
    Dodałem:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Czyli wszystkie deklaracje wyglądają :
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Fakt, głupie przeczenie, ale błąd nie zmienił się, nadal czepia się

    Kod: text
    Zaloguj się, aby zobaczyć kod

    i
    Kod: text
    Zaloguj się, aby zobaczyć kod


    ;/
  • #12 12024873
    sp3ots
    Poziom 38  
    Wklej cały, kompletny program.
  • #13 12024997
    stoper17
    Poziom 20  
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #14 12025035
    sp3ots
    Poziom 38  
    Dodaj dwie linie:
    Declare Sub ddelay
    Dim Obr As Byte ' byte, integer, word ?
  • #15 12026621
    stoper17
    Poziom 20  
    Problem tkwił w wersji programu. Aktualizowałem i ruszyło, hehe tylko teraz inny problem. Dziękuje Mundi1970 za udostępnienie części programu, tylko teraz nie mogę przypisać tych samych funkcji z programu z 1 silnikiem krokowym (parametry skoku,czasu) do obecnego i zmusić go do załączania portów :|
REKLAMA