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



Teraz jest 21 gru 2024, o 16:33


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 6 lis 2016, o 16:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 cze 2016
Posty: 247
Lokalizacja: Rybnik
Pomógł: 13

Witam. Po przeczytaniu definicji interpretera na Wikipedii postanowiłem coś takiego zrobić. Użyłem algorytmów STL. Działanie jest proste : odczytywanie linii z karty SD, wykonanie poleceń i ignorowanie komentarzy czyli tekstów po średniku aż do końca linii. W walce z uniknięciem plątaniny kabli zastosowałem Ethernet shield bo jest już na nim gniazdo na kartę SD i dzielniki napięcia. Oto lista poleceń:
  • tryb -p(pin) -s(stan) -- ustawianie trybu pracy pinu jako we lub wy.
  • ustaw -p(pin) -s(stan) -- ustawianie stanu wysokiego lub niskiego na pinie
  • lbl -n(cyfra) -- label do którego skoczy goto(cyfra od 0 do 9)
  • czekaj -c(czas) -- Czeka podaną liczbę czasu(-c to ms opoznienia / 100 - 100

Zinterpretuje i wykona zarówno polecenia typu ustaw-p2-s1 jak i ustaw -p 2 bezuzytecznyTekst -s 1

ObrazekObrazek



Umieszczam spakowany plik RAR, jest tam plik na kartę SD, instrukcja podłączenia karty SD, oraz instrukcja instalacji STL - plik instalacja-czytac.txt
Szkic jest dość długi i skomplikowany, dlatego ośmielam się wstawić ten projekt na forum.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
Situs != Situs



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2016, o 17:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 cze 2016
Posty: 247
Lokalizacja: Rybnik
Pomógł: 13

Po całym kodzie musi być jeszcze jeden enter by działało - koniec lini jest gdy program napotka enter.
Daję kod(stl trzeba zainstalować):
pseudointerpreter_v2.ino
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
rozpoznaj.ino
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Situs != Situs



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2016, o 18:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Projekt mimo prostoty warty uwagi (już gdzieś się natknąłem na podobne rozwiązania). Są sytuacje gdzie zamiast przeprogramowywać uC w jakimś sterowniku zarządzającym procesem mechanicznym nawet operator, który nie ma pojęcia o programowaniu w prosty sposób pisze skrypt i gotowe - maszyna inaczej działa. Interpretery to w ogóle ciekawa sprawa. Sam lata temu rozbudowywałem i tak świetny jeżyk BASIC jaki posiadał Commodore+4, o dodatkowych kilkanaście opcji, które ułatwiały i drastycznie przyspieszały programy pisane w tym języku, np. wyszukiwanie słowa w liniach DATA - READ był strasznie mozolny, a procedura napisana w asemblerze robiła to błyskawicznie przeszukując kilkaset linii w ułamku sekundy.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2016, o 18:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 cze 2016
Posty: 247
Lokalizacja: Rybnik
Pomógł: 13

if(czas && ochota)
{
dodam więcej poleceń i pomyślę nad if ;
}

_________________
Situs != Situs



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2016, o 20:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

SylwekK napisał(a):
Projekt mimo prostoty warty uwagi (już gdzieś się natknąłem na podobne rozwiązania). Są sytuacje gdzie zamiast przeprogramowywać uC w jakimś sterowniku zarządzającym procesem mechanicznym nawet operator, który nie ma pojęcia o programowaniu w prosty sposób pisze skrypt i gotowe - maszyna inaczej działa. Interpretery to w ogóle ciekawa sprawa. Sam lata temu rozbudowywałem i tak świetny jeżyk BASIC jaki posiadał Commodore+4, o dodatkowych kilkanaście opcji, które ułatwiały i drastycznie przyspieszały programy pisane w tym języku, np. wyszukiwanie słowa w liniach DATA - READ był strasznie mozolny, a procedura napisana w asemblerze robiła to błyskawicznie przeszukując kilkaset linii w ułamku sekundy.


Ja nawet popełniłem na C64 wczytywane rozszerzenie podstawowego basica o funkcje okienek w trybie tekstowym oraz obsługa myszki sterowanej joystickiem i kilka gadgetów buttonów itd:) ehh to były czasy. A pomyśleć że jedne GUi okienkowe co się widziało to było zauważone w gazecie :) na zdjęciu. Pamiętam że napisałem notatnik , kalkulator i edytor znaków :)

---


Gdzieś widziałeś taki projekt?, ja też widziałem coś takiego.

Wracając do C64 , pewnie ktoś by sobie pomyślał , gdzie w takiej małej pamięci interpreter Basica i do tego rozszerzany, pomimo że sam interpreter był w pamięci ROM :) ... pamiętam że robiło się taki myk: kopiowało się pamięć od $a000 do $c000 z ROM do RAM :) następnie wyłączało się ROM :) i i już można było tzw inż.wsteczną coś dopisać w monitorze-debugerze języka maszynowego :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2016, o 21:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Dokładnie - copy Rom do Ram, przełączenie pamięci i można było szaleć do woli. A w ogóle to zająłem się asemblerem bo chciałem nieśmiertelność w grach robić. Po pierwszej trafnej zamianie LDA #$03 na LDA #$FF potoczyło się już lawinowo... Nie miałem w kolekcji gry, która by nie była zhakowana :) chociaż przyznam, że nad jedną to chyba tydzień albo dwa przesiedziałem, a główny problem to było obejście autostartu po załadowaniu i zatrzymanie po rozpakowaniu... dało się :lol:

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2016, o 21:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

SylwekK napisał(a):
Dokładnie - copy Rom do Ram, przełączenie pamięci i można było szaleć do woli. A w ogóle to zająłem się asemblerem bo chciałem nieśmiertelność w grach robić. Po pierwszej trafnej zamianie LDA #$03 na LDA #$FF potoczyło się już lawinowo... Nie miałem w kolekcji gry, która by nie była zhakowana :) chociaż przyznam, że nad jedną to chyba tydzień albo dwa przesiedziałem, a główny problem to było obejście autostartu po załadowaniu i zatrzymanie po rozpakowaniu... dało się :lol:


heh nieźle , to podobne wygi jesteśmy :) jak assembler był w jednym palcu, to dogrzebałem się do dwóch albo trzech muzyczek nie używanych w Super Mario Bros na kasecie (pirat że aż śmierdzi) później okazało się że plansze jakieś krótkie , a jeszcze później powstał edytor plansz a wszystko trzepane w assemblerze w monitorze :) hehe a cała kaseta nowych boulder dashy z etapami i grafiką swoją :)
to było MEGA :)



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: 7 ] 

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO