Tema: Re: Padekit pagaut bug'a (Arduino)
Autorius: ig
Data: 2015-06-05 18:18:41
Programa pradejau ir paskui vel apkarpiau iki sito minimumo ir vistiek 
tas pats.
Serial.print atsirado tik paskui - paziurejimui kas vyksta.
Taip pat elgiasi ir be jo.


O ka rekomenduotum vietoje Arduino ? (su salyga kad daugiau nieko nemoku 
ir reiktu persiorientuoti)


Kadangi dar reikes atlikineti nemazai veiksmu (counterio impulsu trukmes 
matavimas, vidurkinimas, ziurejimas ar geras uzsiduotas greitis, jei 
negerai - pareguliavimai, etc. Tai masciau apie
STM32F.....

Nors greiciai kaip ir nera dideli - 1,2 kHz sita impulsu seka jei 
skaiciuot abu frontus.



On 2015-06-05 17:57, Levas wrote:
> nu tikriausiai supranti, kad dabar pasireiks visas arduino geris, nes
> reikes aiskintis, kaip kas kokioje bibliotekoje ka priprogramino ir
> kokius work arround panaudojo. Ir kokie pertraukimai panaudoti ir kokie ne.
>
> :)
>
> Is esmes, jei nera matomu klaidu, gali buti ir memory leak ir kintamuju
> uzglusinimas. Visa tai gana sunku issiburti.
>
> O siaip, jei programa tik tai ka parasei daro, reikia ja pasirasyti per
> naujo be jokiu serial.println ir kito monstrisko reikalo. Nes karta
> programa parasiau tokia, kur sunaudojo ... data 300% atminties. Ir ji
> dalinai veike!
>
> On 2015.06.05 14:36, ig wrote:
>> Paprasta programele seka variklio encoderio outputa, skaiciuoja
>> "zingsniukus" ir kai padaromas pilnas apsisukimas (624 zingsniai),
>> keiciama sukimosi kryptis. Ir taip "mojuoja" pirmyn atgal.
>>
>> Taciau karts nuo karto (mazdaug vienas is desimt ciklu), atsitiktinai
>> variklis apsisuka maziau nei pilna apsisukima ir pradeda keisti krypti.
>> pabandziau su serial.println isvedineti "c" reiksme kai keiciasi kryptis
>> (t.y. if viduje - uzkomentuota eilute).
>>
>> Nuostaba tame, kad sutrikimo atveju visada buna c=512 (t.y. grazus
>> binarinis skaicius, ar nesusije su duomenu tipais, overflowais kokiais
>> ir pan., nors keiciau c tipa int, unsigned int, jokio skirtumo - visada
>> 512. (624-512 = 92)
>> (Pakeitus vienos krypties zingsniu skaiciu i belekoki kita pvz 1001,
>> klaidos atveju metama visada 768 reiksme. 1001 - 768 = 233)
>>
>> Nuostaba numeris du, kad c=512 viduje if(c>623) salygos !!! T.y. kaip i
>> ta "if" isvis patenkama, jei netenkinama salyga.  O ji netenkinama
>> tikrai, nes klaidos atveju, butent tiek (~20%) ir nedasisukes iki pilno
>> apsisukimo pradeda suktis atgal ir tada sukiojasi pirmyn atgal jau nuo
>> naujos pozicijos. Vienintelis paaiskinimas, kad po salygos ispildymo
>> staiga ivyksta 64911+512 interruptu, kad "c" owerflowinasi iki
>> 512(624+64911 = 65535). Nu galima daleisti kad enkoderis kazkoki noisa
>> ismeta ir sudurniuoja interuptai/skaiciavimas, bet kodel visa laika
>> vienodai... o ne randomu.
>>
>> Zodziu biski konfuze. Gal kas turi minciu ?
>>
>>
>>
>> volatile unsigned int c = 0;  // counter
>> volatile boolean dir = 1;     // direction
>>
>> int fwdrevPin = 9;
>>
>> void setup() {
>>    attachInterrupt(0, tacho, CHANGE);
>>    pinMode(fwdrevPin, OUTPUT);
>> }
>>
>> void loop() {
>>
>> if (c > 623){
>>
>>     // Serial.println(c);
>>
>>     dir = !dir;                  // Switch direction
>>     c = 0;                       // Reset counter
>>     if (dir==0) {
>>       analogWrite(fwdrevPin, 140);
>>    }
>>     else {
>>       int t = 128 - torque;
>>       analogWrite(fwdrevPin, 100);
>>     }
>> }
>>
>>
>>
>> }
>>
>> void tacho()
>> {
>>    c++;
>> }
>

3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser