Zaslal: pá srpen 30 2019, 0:58 Předmět: Konverze do jazyka Arduina
Ahoj všem .Stále bojuji se psaním programů pro Studio Arduino 1.8.9
Velmi málo se mi daři zprovoznit .Nechci to vzdát .
Problém :
Fungující program napsaný v turbo basicu = viz obrázek
Chci napsat = modifikovat pro Arduino = konvertovat do jazyka Arduina
výpis programu :
REM:NAZEV PROGRAMU :TBASIC TRANSFER TO ARDUINO JAZYK
OPEN "COM2:9600,N,8,1,RS,CS,DS,CD,LF,PE" AS #1: REM OTEVRENI COM PORTU
FOR X=1 TO 3000 STEP 86 :REM PRACOVNÍ SMYCKA
Y=X/2.5 :REM VYPOCET
PRINT "Y=";Y :REM TISK NA OBRAZOVKU
REM POZADUJI VYSTUP Y NA SERIOVY MONITOR
REM POZADUJI VYSTUP Y NA SERIOVY PLOTER
IF Y > 400 THEN STOP
NEXT X
....
Děkuji za rady respektive napsání jednoduchého prográmku
aby fungoval v Arduinu.
....
poznámky :
Doba překladu = kompilace je dosti dlouhá
Komplikovanost jazyka C je mi záhadou
Založen: Nov 20, 2012 Příspěvky: 1453 Bydliště: Praha
Zaslal: pá srpen 30 2019, 9:33 Předmět:
elnovy napsal(a):
PO DOSAZENI HODNOTY Y =400
JAK SEM POZADOVAL ALE FURT PRACUJE DOKOLA = cykluje
Je to tím, že funkce loop se volá neustále dokola. Tj. voláním break se přeruší vykonávání cyklu for a poté se opět volá funkce loop. Jestli chceš aby se při (y > 400) přestal program vykonávat, tak místo break napiš např. while(1)
Delay na konec jsem dal jen pro příklad (nevíme, kdy chceš měřit) a nevím proč by nefungovalo, přesun na začátek smyčky musí fungovat. A loop běží do nekonečna, pro měření si musíš dodat podmínku a třeba interuptem si ji tlačítkem nastavit na true.
Děkuji za radu ale i s upravou to cykluje
float x, y;
void setup() {
Serial.begin(9600);
delay(10000); // v teto dobe spustim seriovy monitor or ploter
}
void loop() {
for (x = 1; x <= 3000; x = x + 86) {
y = x / 2.5;
Serial.println(y);
if (y > 400) while(1);
}
delay(1000);
}
Pripravim program konkrétní / toto byl jen tréning /
a snad touto cestou to dám dohromady
....................
V assenbleru nebo TURBO basicu pišu skoro všechno
ale tento C jazyk mi nějak nesedí
Založen: Jun 26, 2009 Příspěvky: 1302 Bydliště: Hlohovec (Sk)
Zaslal: pá srpen 30 2019, 11:01 Předmět:
mozno by bolo dobre napisat co od toho ocakavas
poznas zakladnu vlastnost MCU a to ze bezia furt? Toto je naj problem pre ludi ktory zacinaju programovat mcu, ked programujes nieco do PC, tak to skratka zbehne a stoji , mcu tocii furt. u nas maju aj servisaci proben pochopit ze nejake PLC bezi stale, tam uz ani ziaden Delay neexistuje....
tebe sa proste program ani mcu nezastavi ked Y >400 ale sa vrati na zaciatok loopu a bezi znova
ak ho chces zastavit (vykonat iba raz) daj ho do setupu
napis pls co to ma robit
Naposledy upravil misocko dne pá srpen 30 2019, 11:06, celkově upraveno 1 krát.
Pokud opravdu chceš, aby se cyklus pustil pouze jednou, tak kód uprav takhle:
kód:
float x, y;
void setup() {
Serial.begin(9600);
delay(10000); //Zde si nastav co potrebujes...
for (x=1; y<=400; x=x+86) { //v podmince FOR cyklu muzu kontrolovat co potrebuji, nemusi to byt ridici promenna (x), kontrolou y usetrim IF
y = x/2.5;
Serial.println(y);
}
1. program musí běžet rychle furt dokola
2. na pinu A0 procesoru ESP12 = viz obr. se nepřetržitě měři napětín DC s rozlišením 10bitu
tzn 0-1024 bude naměřená hodnota = X
3. transformace naměřené hodnoty dle tabulky takto :
Y= fce(x) dle tabulky : //nechci vyjádřeni nějakou funkci ale jen obecně tabulkou napŕiklad
X = 0-100 trvale Y= 0
X = 101-200 trvale Y= 3
X = 201-300 trvale Y= 6
X = 301-600 trvale Y= 9
X = 601-800 trvale Y= 15
X = 801-900 trvale Y= 18
X = 901-1300 trvale Y= 20
s možnosti rozšiření tabulky na vice hodnot !!!
hodnota Y se bude trvale odesilat na seriovy port rachlosti 9600
jedině tehdy pokud bude splněna podmínka Y je větši než 10 !!!
konec zadání verze 1
Děkuji za pomoc ...pracuji na tom ale jak se znám zase mi
Kompilace nepude = se zastaví
popis co od toho ocekavam jsem poslal P. Misockovi SK
-------
Rozhodné nechci aby se to zde zase stalo vlaknem pro viti vlků
a kecani o ničem nebo o napadání prvotni myšlenky = viz nadpis
----
Konverze do jazyka Arduina
----
abych alespoň trochu uspokojij ŠTOURAVCE
pokud někdo chce mi poslat fungující program ať mi napíše na SZ kolik za to či ono chce a třeba se dohodneme
-----
Jak jsem psal se to C for arduano učim
a není to jen zde možno studovat
...
existuej i hafo tutoriálu
https://randomnerdtutorials.com/projects/
...
Skoda že se tu již nezobrazují hvězdičky hned by bylo vidět kdo klade FAKE _________________
Upřímně řečeno, tvé dotazy jsou velmi... začátečnické. Zvládáš něajký programovací jazyk? Zdá se mi, že nějaký dialekt Basic-u ano. Potom bych ti doporucil zadat si do oblíbeného vyhledávače něco jako „základy jazyka C“ a v prvních pěti odkazech určitě najdeš to, co potřebuješ. V jiném případě vyměň svůj oblíbený vyhledávač za schopnější.
Pokud Ti toto nestačí jako správné posunutí vhodným směrem, tak se na to, prosím, vykašli. Bude to trápení pro Tebe i ty, kteří se Ti budou snažít pomoci. Tím, že Ti tu někdo postne hotový kód se mnoho nenaučíš, zvláště v situaci, kdy máš problém najít na 10 řádcích kódu chybějící středník.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: pá srpen 30 2019, 13:30 Předmět:
Já si to neodpustím - situace je patrně taková, že za měsíc se v jeho nabídce služeb objeví i programování v C++, aby byla lákavější. Jen se potřebuje naučit pár příkazů... _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.