Dotazy začátečníka 2
Re: Dotazy začátečníka 2
Doplněn poslední příspěvek níže.
Naposledy upravil(a) jova dne 05 črc 2018, 07:12, celkem upraveno 1 x.
Re: Dotazy začátečníka 2
https://youtu.be/mzz8ch-Eimk
Tady se mi podařilo nahrát o jaký problém jde, jaké znaky se náhodně v náhodný čas nactou. Viz cca 10, 20 a 60 vteřina videa.
Na těch francouzských stránkách jsem našel i stejne zapojení pro termostat o které se pokousim, ale žádný zásadní rozdíl nevidím, přičemž připomínám že jsem opravdu amatér.
Zapojení s 20M2 asi dělat nehodlám vzhledem k tomu, že má display zobrazovat teplotu a nic víc.
Tady se mi podařilo nahrát o jaký problém jde, jaké znaky se náhodně v náhodný čas nactou. Viz cca 10, 20 a 60 vteřina videa.
Na těch francouzských stránkách jsem našel i stejne zapojení pro termostat o které se pokousim, ale žádný zásadní rozdíl nevidím, přičemž připomínám že jsem opravdu amatér.
Zapojení s 20M2 asi dělat nehodlám vzhledem k tomu, že má display zobrazovat teplotu a nic víc.
Re: Dotazy začátečníka 2
Ještě jednou jsem se pořádně kouknul na ten tvůj program v simulátoru a máš tam chybu. Ty jsi tu původní verzi z robodoupěte pokrátil a neošetřil jsi stav který nastane po uplynutí těch 3 sekund.
Program tam musí buď skončit, nebo se zase vrátit na začátek. Když pokračuje dál, jako u tebe, tak se dostane do inicializace LCD kdy se nesmyslně zacyklí na prvním příkazu RETURN
Program tam musí buď skončit, nebo se zase vrátit na začátek. Když pokračuje dál, jako u tebe, tak se dostane do inicializace LCD kdy se nesmyslně zacyklí na prvním příkazu RETURN
Re: Dotazy začátečníka 2
Děkuji za nápovědu. Pokusil jsem se to opravit a posunout se dál, ale pořád to nedělá to, co by mělo...
Nyní mi display zobrazí první řádek, ale opět náhodně mi ho posune o pár znaků doprava (1 - 3 znaky). Tzn. jednou mám první dva znaky prázdné a řádek končí 4, jindy je jen jeden a řádek končí 5, atd. Je v kódu něco, co nevidím, že mi posouvá text? V simulaci mi přijde vše správně.
Děkuji za pomoc.
edit: doplnění aktuálního kódu
Nyní mi display zobrazí první řádek, ale opět náhodně mi ho posune o pár znaků doprava (1 - 3 znaky). Tzn. jednou mám první dva znaky prázdné a řádek končí 4, jindy je jen jeden a řádek končí 5, atd. Je v kódu něco, co nevidím, že mi posouvá text? V simulaci mi přijde vše správně.
Děkuji za pomoc.
edit: doplnění aktuálního kódu
Kód: Vybrat vše
REM LCD displej 2x16 s 8 datov?mi vodi?i - PICAXE 20X2
eeprom 0 ,("1234567890123456") ;ulo?en? textu do EEPROM
let dirsB=%11111111 ;nastaven? portu B pro pins
gosub inicializace ;inicializace LCD
telo:
for b1=0 to 15 ;v?pis textu
read b1,b0 ;znak po znaku z EEPROM
gosub zapis_znaku
next b1
pause 3000 ;prodleva na ?ten?
b0=%00000001 ;smaz?n? displeje
gosub zapis_povelu
goto telo
inicializace:
pause 200
b0=%00110000 ;8 bit re?im
gosub zapis_povelu ;z?pis 1
pause 10 ;nutn? prodleva
gosub zapis_povelu ;z?pis 2
gosub zapis_povelu ;z?pis 3
b0=%00111000 ;2 ??dky, znaky 5x8
gosub zapis_povelu
b0=%00000001 ;smaz?n? displeje
gosub zapis_povelu
b0=%00001100 ;zapnut? LCD, kurzor ne, neblikat
gosub zapis_povelu
return
zapis_znaku: ;z?pis znaku z b0
high c.0 ;p?enos znaku (nastaven? RS)
let pinsB=b0 ;nastaven? dat
pulsout c.1,1 ;z?pis
return
zapis_povelu: ;z?pis povelu z b0
low c.0 ;p?enos povelu (nastaven? RS)
let pinsB=b0 ;nastaven? dat
pulsout c.1,1 ;z?pis
return
Re: Dotazy začátečníka 2
Tak jsem nejspíš přišel na řešení. Za "goto telo" jsem ještě přidal end a všechno vypadá funkčně
Jdu se posunout dál a určitě tu budu ještě otravovat
Jdu se posunout dál a určitě tu budu ještě otravovat
Re: Dotazy začátečníka 2
Mám dotaz. Příkaz mazání displeje probíhá mnohem (!) déle než ostatní příkazy. Jak je zajištěno, že program nepošle do displeje žádný další povel nebo data, dokud neskončí? Podle mě ....
Re: Dotazy začátečníka 2
Tak jsem zpět s dotazy
Používám typ 20X2 a zjistil jsem, že tento procesor nepodporuje multitasking.
Jde nějak zařídit, aby procesor snimal polohu potenciometru pomocí readadc a zároveň uložil informaci v případě zmáčknutí tlačítka? Ve verzi M2 bych použil start0 a start1, ale u me verze nevím.
Děkuji za rady
Používám typ 20X2 a zjistil jsem, že tento procesor nepodporuje multitasking.
Jde nějak zařídit, aby procesor snimal polohu potenciometru pomocí readadc a zároveň uložil informaci v případě zmáčknutí tlačítka? Ve verzi M2 bych použil start0 a start1, ale u me verze nevím.
Děkuji za rady
Re: Dotazy začátečníka 2
Asi by to chtělo uvést konkrétní použití.
Když je to normální program který běží v jedné smyčce tak program začne... někde změřím napětí a uložím ho do proměnné... někde budu testovat zda je tlačítko stisknuté, pokud ne program poběží dál, pokud ano, tak program udělá odskok na zapsání parametru do paměti a vrátí se zpět a pokračuje dál... na konci se program opět vrací na začátek... načítá další měření...
Když je to normální program který běží v jedné smyčce tak program začne... někde změřím napětí a uložím ho do proměnné... někde budu testovat zda je tlačítko stisknuté, pokud ne program poběží dál, pokud ano, tak program udělá odskok na zapsání parametru do paměti a vrátí se zpět a pokračuje dál... na konci se program opět vrací na začátek... načítá další měření...
Re: Dotazy začátečníka 2
Zatím jsem ve fázi odladeni termostatu, tzn:
Z ds18b20 čtu teplotu, pak mám 2 tlačítka pro 2 přednastavené teploty a chci potenciometr, kterým si nastavím teplotu dle aktuálního požadavku.
Jde mi o to, že čtení teploty a zápis na display trvá nějakou dobu a když zmacknu tlačítko ve chvíli, kdy čtu teplotu, tak se mi informace z tlačítka nikam nezapise.
Nebo třeba přidávám na teplotě potenciometrem a zápis na display je silně zpozdeny oproti natočení potiku.
Napadlo mě, vzít další tlačítko, které bych zmackl a držel, a při tom by program hlídal jen polohu potiku popř přednastavené tlacitko a zápis na ldc.
Myslím, že v tomto případě bych plně využil multitasking...
Pozn: stavím vypejkaci troubu:)
Z ds18b20 čtu teplotu, pak mám 2 tlačítka pro 2 přednastavené teploty a chci potenciometr, kterým si nastavím teplotu dle aktuálního požadavku.
Jde mi o to, že čtení teploty a zápis na display trvá nějakou dobu a když zmacknu tlačítko ve chvíli, kdy čtu teplotu, tak se mi informace z tlačítka nikam nezapise.
Nebo třeba přidávám na teplotě potenciometrem a zápis na display je silně zpozdeny oproti natočení potiku.
Napadlo mě, vzít další tlačítko, které bych zmackl a držel, a při tom by program hlídal jen polohu potiku popř přednastavené tlacitko a zápis na ldc.
Myslím, že v tomto případě bych plně využil multitasking...
Pozn: stavím vypejkaci troubu:)
-
- Příspěvky: 385
- Registrován: 02 dub 2014, 15:30
Re: Dotazy začátečníka 2
vyuzivas preruseni ?
kolk casu zabere zabere cteni teploty ?
(v nekterych programech je vlozena cekaci smycka 800ms. napr. tady http://www.instructables.com/id/PICAXE- ... or-to-LCD/)
kdyz otacis potakem (nastavujes teplotu), tak neni treba volat cteni teploty. a zobrazovani hodnot na lcd netrva nijak dlouho.
takze odezva by mela byt svizna.
vyvojovy diagram, mas ?
napis heslovite jednotlive rutiny, jak je mas za sebou.
kolk casu zabere zabere cteni teploty ?
(v nekterych programech je vlozena cekaci smycka 800ms. napr. tady http://www.instructables.com/id/PICAXE- ... or-to-LCD/)
kdyz otacis potakem (nastavujes teplotu), tak neni treba volat cteni teploty. a zobrazovani hodnot na lcd netrva nijak dlouho.
takze odezva by mela byt svizna.
vyvojovy diagram, mas ?
napis heslovite jednotlive rutiny, jak je mas za sebou.