Stránka 3 z 10

Re: Dotazy začátečníka 2

Napsal: 01 črc 2018, 21:50
od jova
Doplněn poslední příspěvek níže.

Re: Dotazy začátečníka 2

Napsal: 02 črc 2018, 20:12
od labus
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.

Re: Dotazy začátečníka 2

Napsal: 02 črc 2018, 21:51
od jova
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 :cry:

Re: Dotazy začátečníka 2

Napsal: 08 črc 2018, 20:58
od labus
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

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

Napsal: 09 črc 2018, 11:50
od labus
Tak jsem nejspíš přišel na řešení. Za "goto telo" jsem ještě přidal end a všechno vypadá funkčně :D
Jdu se posunout dál a určitě tu budu ještě otravovat ;)

Re: Dotazy začátečníka 2

Napsal: 12 črc 2018, 06:16
od micer
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

Napsal: 18 črc 2018, 14:11
od labus
Tak jsem zpět s dotazy :)
Používám typ 20X2 a zjistil jsem, že tento procesor nepodporuje multitasking. :cry:
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

Napsal: 18 črc 2018, 14:26
od jova
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í...

Re: Dotazy začátečníka 2

Napsal: 18 črc 2018, 14:53
od labus
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:)

Re: Dotazy začátečníka 2

Napsal: 18 črc 2018, 17:51
od Vladimir66
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.