Lacrosse TX20 szélmérő

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
barathg
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2016. július 11. hétfő, 9:13

Lacrosse TX20 szélmérő

Hozzászólás Szerző: barathg »

Sziasztok!

3 napja hibát keresek, kezdek becsavarodni... Plíz help, kell egy külső szem, én már ugyanazokat a köröket járom újra is újra...
(Rólam: kisebb projektek már mennek, de azért bőven kezdő vagyok. C nem megy, Arduino-t stabilan olvasom, és lassan de ollózom, módosítgatom, eddig még sikerült megoldani mindent, amit elterveztem.)

A végső cél, hogy egy Mega panelra rákössek egy TX20 szélmérőt. Ezt több lépésben terveztem megoldani, de csak visszafelé lépkedek...

1. Felásva a net bugyrait, a leghasználhatóbb kódnak ez tűnt:
http://fabrizio.zellini.org/decoding-la ... th-arduino
Igaz részleteiben nem mindent értek, de megépítettem az áramkört dugdosós panelen, teszteltem Uno-n, működött.

2. Áramkör leforrasztva, tesztelném itt, de már nem megy. (Ha menne, utána jönne a kód átültetése Mega-ra, na ez is külön sztori...)
Persze átnéztem az áramkört ezerszer, rendben van. Mérni csak multiméterrel tudok (feszültség, ellenállás), rendben van minden. Adat nem jön át...

3. Vissza a dugdosósra, hátha észreveszek valamit, vagy hátha a szenzorral van gond. Közben logisztikai okokból át kellett állnom egy nano-ra, de nem volt gond, tegnap még ment gond nélkül a dugdosós, szóval a szenzor jó, úgyhogy újra ellenőrzés a leforrasztott áramkörön, áramkör rendben, feszültségszintek rendben, szakadás nincs... adat nem jön.

4. Ma új lelkesedéssel kezdtem mindent elölről: leforrasztott áramkör ellenőrzés, szakadás mérés, feszültség mérés, minden látszólag jó, adat nem jön. Vissza a dugdosósra, és már az sem megy. Tegnap pedig még ment, és azóta nem nyúltam hozzá. Na itt kezd elmenni az életkedvem.

Néhány debug sort írtam bele a fenti linken lévő kódba (máshoz még nem nyúltam): setup végén és ahogy be/kilép a megszakításokba, Serial-ra írom ki, hogy hol tart. Ez alapján a dugdosós áramkör működése (amelyik 24 órával ezelőtt még működött gond nélkül):
-------------v1--------------
plusz sor a kódban 6 helyen, mind Serial.println: setup végén, loop elején és mindkét megszakítás első és utolsó parancsa:
- belép az első megszakításba, végigfut, kilép belőle
- belép a második megszakításba, végigfut, kilép belőle, és ezt megismétli négyszer
- lefut a setup
- elindul a loop, de 'rx' végig nulla, így adat kiírás nincs
- ennyi, nem lép be újra a megszakításokba...
-------------v2--------------
plusz sor a kódban 5 helyen, mind Serial.println: setup végén, és mindkét megszakítás első és utolsó parancsa, plusz a második megszakításban kiíratom vele a következő változókat: rx, sb, sc:
- általában semmi nem történik (vagy csak nem indul el a Serial, és ezért nem látom), de reset nyomogatásra néha elindul, és:
- lefut a setup (v1-ben ugye ez csak a harmadik fázisban történik meg)
- belép az első megszakításba
- ennyi...
-------------v3--------------
plusz sor a kódban 6 helyen, mind Serial.println: setup végén, loop elején és mindkét megszakítás első és utolsó parancsa, plusz a második megszakításban kiíratom vele a következő változókat: rx, sb, sc:
- általában semmi nem történik (vagy csak nem indul el a Serial, és ezért nem látom), de reset nyomogatásra néha elindul, és:
- lefut a setup (v1-ben ugye ez csak a harmadik fázisban történik meg)
- elindul a loop, de 'rx' végig nulla, így adat kiírás nincs
- kb 30 ciklus után leáll

Bárkinek bármilyen tippje? Hogyan tovább debug? Elsőként már annak is örülnék, ha a dugdosós újra működne, aztán jöhet a forrasztott.
Esetleg egy olyan kódja, ami nem megszakításokkal dolgozik, és Arduino nyelven íródott? Azt hátha jobban átlátnám, és a debug is könnyebben menne...

Köszi előre is
Géza
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Lacrosse TX20 szélmérő

Hozzászólás Szerző: kapu48 »

Megszakításba soha nem rakunk Serial.printett!
Bilegtes benne 1 kimenetett, azt figyelheted skoppal vagy egy ilyennel:
http://shop.tavir.hu/advanced_search_re ... 00&x=0&y=0

estleg LED-ekel.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Lacrosse TX20 szélmérő

Hozzászólás Szerző: kapu48 »

Közben belenéztem a programba.
Amit valószínűleg nem értesz azok közvetlen timer regiszter műveletek az ISR-ben.
Ez a proci maximális sebességének a kihasználása miatt van így megoldva.

Most te bemész oda, mint elefánt a porcelán boltba, és elcsesed az időzítést!

Utána még csodálkozol, hogy nem mükszik??? :roll:

Ebben a gyorsaságra kihegyezett alkalmazásban, nem fér bele lassú: Serial.begin(9600); !!??
Esetleg felgyorsítva maximumra: Serial.begin(115200);? vagy nagyobb!
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Lacrosse TX20 szélmérő

Hozzászólás Szerző: kapu48 »

Különben képzelj el 1 futó versenyt ahol 2 pont között eltelt időt kel mérned.

Mikor indul, a versenyző azt jelzi a megszakítás kérés, most Te le íród, hogy a piros trikós versenyző 10-essel a hátán el indult.
Utána indítod a stoppert. Mikor célba ért a versenyző te még csak azt íród, hogy már a kanyarban vannak.
Ezért le maradsz a stopper le állítás jelről! Mire ezt mind le írtad már mind az 5 versenyző célba ért! Mivel az 1 igen gyors mezöny!
Utána csak állsz és várod a stopper leállítás parancsot??
barathg
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2016. július 11. hétfő, 9:13

Re: Lacrosse TX20 szélmérő

Hozzászólás Szerző: barathg »

Értem (sejtem :) ), mit műveltem, köszönöm a magyarázatot. A serial sebesség adott volt, a loop ezen adja ki az adatot, ezt nem bántottam. A megszakításból pedig törlöm szélsebesen, amiket belefirkáltam. Na pont erre írtam, hogy nem teljesen világos a kód :D De most már legalább az is világos, hogy miért viselkedik máshogy, ahogy adogattam hozzá a plusz sorokat...

A logikai analizátor... hát lehet az következik... amúgy is érik egy csomag Robitól...
barathg
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2016. július 11. hétfő, 9:13

Re: Lacrosse TX20 szélmérő

Hozzászólás Szerző: barathg »

Feladat megoldva
A logikai analizátor jó tipp volt, azóta kb non-stop használom. Kiderült, hogy a szenzort nem sütöttem meg, csak a jelfeldolgozás nem működött valamiért. Úgyhogy vettem egy nagy levegőt, és az elérhető infók alapján lekódoltam a teljes kommunikációt nulláról: megszakítások nélkül, Arduinoban, a magam kezdő szintjén. Viszont működik, bármelyik panelon, és könnyen áthelyezhető más portokra :)
Válasz küldése