Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Forth, za one sa razlčitim rasporedom vijuga...
Da nastavim….

FlashForth \ ****************************************

Da se sad malo vratimo na FlashForth, radim na njemu 11 dana povremeno, uzeo sam jedini PLC  kojim upravlja Arduino Atmega2560, a to je i ujedno jedini PLC za koji znam da ima mikrokontroler u koji je moguće upisati Forth. U tih 11 dana, u potpunosti sam savladao upravljanje ulazima, izlazima, adc konverzija, stack manipulacija, for-next petlja (nije u standardima ali FF ih je preuzeo iz gforth), definiranje novih riječi, konstante, varijable.
Čitava logika se vodi oko stack-a koji nije potrebno pamtiti jer ga ionako ispisuje na terminalu.
U početku dok sam krenuo s Forthom teško mi je bilo pohvatati kako to sve funkcionira, ali kad sam prošao određeni broj sati rada na Forthu, kao kad stisneš prekidač najednom sve postaje jasno kako to sve funkcionira. Svaka komanda se izvršava odmah nakon poziva i/ili pritiska tipke enter. Logika čitanja riječi odnosno funkcija koje su navedene u wordsAll.txt i što ona radi je zapravo vrlo jednostavna.
Za razliku od C-jezika, ovdje moraš znati što koji registar radi i što je potrebno pripremiti da se željena operacija izvrši.
Ovo je prvi put da radim s Atmega serijom mikrokontrolera. I zapravo nije mi previše bitno koji je mikrokontroler (dok netko ne ukaže na drugačije), ovaj ima ono što mi trenutno treba.


Za one koje zanima ff, ima par trikova koje je potrebno znati. U folderu se nalazi shell programčić koji radi malo drugačije nego klasični serijski programi.
Prvi put je potrebno upisati hex na mikrokontroler, u mom slučaju je to bio 2560-16MHz-38400.hex. Može se to napraviti preko jeftinog usbasp.
Nakon toga u folderu se nalazi mapa “shell” koja u sebi ima ff-shell.py pisan u pyton-u.
Arduino Mega2560 komunicira preko usb-a, ali radi kao da je spojen preko serijskog porta. Nisam puno istraživao kako…
E sad jedna možda najbitnija stvar, jako bitno je skužiti kako podesiti 200ms pauzu nakon učitavanja linije koda. Dakle, kad želite poslati nekakav program upisan u nekoj datoteci npr. File.txt, treba svaki put da program pauzira 200ms nakon svake linije, jer nekad kompajler ne uspije završiti, a kompjuter šalje naredbe. Pa onda dobijete one upitnike “?”
Za razliku od Mecrispa, Flashforth radi na brzinama od 38400 baud-a. U interaktivnom načinu rada, ja nisam primjetio nikakvu razliku u brzini. To što će tekstualnu datoteku učitavati 20 sek mi ne smeta.

Za Flashforth postoji stranica sa primjerima, a uskoro i videima koji demonstriraju programčić:

https://arduino-forth.com treba odabrati engleski jezik

Jedan korisni link s organiziranim pregledom Forth naredbi, memorijske mape....itd :

https://flashforth.com/ff5-sheet.pdf

I naravno na početnoj stranici samog ff se nalaze sve bitne razlike od standardnog Forth-a. 


U sljedećem postu ću objaviti nešto o moćnom 8-jezgrenom mikrokontroleru koji ima već upisan Forth u ROM.
Reply


Messages In This Thread
RE: Forth, za one sa razlčitim rasporedom vijuga... - by vedran - 02-07-2021, 11:30 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)