Dotazy začátečníka 2
Dotazy začátečníka 2
Vážení kolegové, povedlo se mi odladit prográmek na 08M - diody blikají jak mají dle definovaných cyklů, tlačítko na startu reaguje, uprostřed také. Když odpojím sériový kabel, po restartu vše funguje, dokud nepřiblížím ruku k procesoru - bez doteku! Program se restartuje. To se děje se 100% opakovatelností. Ošetření vstupů 2 a 7 dle doporučení včetně i následně přidané diody.
Nemáte někdo zkušenost s tímto problémem?
Nemáte někdo zkušenost s tímto problémem?
Re: Dotazy začátečníka 2
1. Máte co nejblíže pouzdru PICAXE připojen keramický kondenzátor o hodnotě 47 až 220 n mezi piny 1(+) a 8(-)?Ošetření vstupů 2 a 7 dle doporučení včetně i následně přidané diody.
Pokud to nepomůže:
2.Odpojte sériový kabel a pin 2 spojte s pinem 8.
Pokud to nepomůže:
3. Pošlete schéma zapojení včetně ošetření pinů 2 a 7.
jrt
Re: Dotazy začátečníka 2
Ahoj po ránu,
zkusím taky tipovat problém... pokud je pin připojen na tlačítko, nesmí být v luftě, je třeba přidat Pullup odpor,
nebo to udělat příkazem... A jak kolega uváděl i vstup C.5 (pin2), musí mít odpor k zemi 5-22k.
Ale asi bez schema či kodu moc neporadíme...
zkusím taky tipovat problém... pokud je pin připojen na tlačítko, nesmí být v luftě, je třeba přidat Pullup odpor,
nebo to udělat příkazem... A jak kolega uváděl i vstup C.5 (pin2), musí mít odpor k zemi 5-22k.
Ale asi bez schema či kodu moc neporadíme...
Re: Dotazy začátečníka 2
Kondenzátor přímo na vývodech pomohl. Měl jsem ho původně na vstupu napájení. Tlačítka mám na zem přes 10k. Dík za pochopení.
Dotazy začátečníka 2
Zdravíčko,
mám malý problém, který jsem sice vyřešil po svém, ale kdyby se to povedlo ...
přiřadil jsem pinu název, se kterým pracuji ... dále jsem bitu taky přiřadil název a poté jsem názvy "srovnal" ...
Jenže v tomto stavu mi to funguje (asi) jako opakovač - co je na pinu A.0, to je v bit1 ... ale já bych potřeboval aby si bit1 pamatoval log.1 do doby než jej fyzicky vynuluju např. let bit1 = 0 ... abych po stisknutí a následném uvolnění tlačítka na pinu A.0 mohl dále pracovat s informací, že bylo tlačítko stisknuto ...
Vyřešil jsem to a když už tuto informaci nepotřebuji, tak mám let bit1 = 0, abych potom zase mohl hlídat opakovaný stisk ...
Dá se nějak "donutit" tento CPU, aby si pamatoval "bit1", aniž bych jej nastavil? Aby při stisku zkopíroval do bitu a tuto informaci tam uchoval dokud ji nevymažu?
Jedná se o 28x2
Díky za názory, P.
mám malý problém, který jsem sice vyřešil po svém, ale kdyby se to povedlo ...
přiřadil jsem pinu název, se kterým pracuji ... dále jsem bitu taky přiřadil název a poté jsem názvy "srovnal" ...
Kód: Vybrat vše
symbol S1 = pinA.0
symbol S1_b = bit1
S1 = S1_b
Vyřešil jsem to
Kód: Vybrat vše
if pinA.0 = then let bit1 = 1
Dá se nějak "donutit" tento CPU, aby si pamatoval "bit1", aniž bych jej nastavil? Aby při stisku zkopíroval do bitu a tuto informaci tam uchoval dokud ji nevymažu?
Jedná se o 28x2
Díky za názory, P.
-
- Příspěvky: 393
- Registrován: 02 dub 2014, 15:30
Re: Dotazy začátečníka 2
co znamena: if pinA.0 = then let bit1 = 1 ??
kdyz budes mit podminku if pinA.0 = 0 then let bit1 = 1 ,
tak potom kdyz nastane pinA.0 = 1 se bit1 nema jak zmenit. (dokud ho nekde nezmenis let bit1 = 0)
jednou zapsana promenna zustane zapsana.
mozna vic popiš ten zamýšlený algoritmus.
nepochopil jsem myslenku, ze neco zkopirovat je jine, nez neco nastavit.
nastaveni, zkopirovani, prirazeni - to chapu jako stejnou vec. meni se hodnota promenne.
nebo mas problem s tim IFem ?
-V66
kdyz budes mit podminku if pinA.0 = 0 then let bit1 = 1 ,
tak potom kdyz nastane pinA.0 = 1 se bit1 nema jak zmenit. (dokud ho nekde nezmenis let bit1 = 0)
jednou zapsana promenna zustane zapsana.
mozna vic popiš ten zamýšlený algoritmus.
nepochopil jsem myslenku, ze neco zkopirovat je jine, nez neco nastavit.
nastaveni, zkopirovani, prirazeni - to chapu jako stejnou vec. meni se hodnota promenne.
nebo mas problem s tim IFem ?
-V66
Re: Dotazy začátečníka 2
Chyba v textu ... vypadlo mi číslo :-/ mělo tam být
if pinA.0 = 1 then let bit1 = 1
Jde o to, že když napíšu "pinA.0 = bit1", tak při každé změně stavu na pinu A.0 se automaticky změní také hodnota bit1. Ale já po stisku (resp. uvolnění) tlačítka potřebuji pracovat s informací, že bylo tlačítko stisknuto. Proto jsem to vyřešil "mechanicky" - ručním zápisem "if pinA.0 = 1 then let bit1 = 1" ... když je podmínka splněna (tlačítko stisknuto), tak se mi příkazem "let bit" obsadí bit a po uvolnění tlačítka si bit danou hodnotu pamatuje pro další možnou budoucí prací s touto informací. A jakmile už tuto informaci nepotřebuji, tak ji vynuluju "let bit1 = 0" ...
Po dobu co bit1 = 1 mne nezajímá, kolikrát bude tlačítko stisknuto. Tímto způsobem řeším i možné zákmity tlačítka nebo kombinace "if", kde potřebuju vědět, jestli už bylo stisknuto, ale nezajmá mne kdy a kolikrát.
Ale přeci jen bych měl jeden technický dotaz ...
co do počtu bitů mám k dispozici pouze 16 bitů (bit0 až bit7 (b0) a bit8 až bit15 (b1))? Co kdybych potřeboval pracovat s více bity - s více uloženými informacemi, ale je pro mne škoda obsazovat kvůli informaci jestli je nebo není =1 celý bajt .. dá se nějak pracovat s jednotlivými bity dalších bajtů? jak "oslovím" jednotlivé bity z b2, b3, atd.? Co jsem pročítal návody, tak jsem našel informaci:
K dispozici je 14 byte b0 až b13, které mohou být sdružovány po dvou v 16 bitová slova (word) w0 až w6. Jednotlivé bity b0 a b1 mohou být také adresovány jako bit0 až bit 15.
Ale co kdybych chtěl pracovat s jednotlivými bity dalšího bajtu ... co se mi stane po zápisu bit16 nebo třeba bit100?
Protože pokud bych chtěl např. při splnění podmínky dvou bitů "if bit1 = 1 and bit2 = 1 then ..." obsadit další bit pro budoucí zpracování a bity z b0 a b1 už mám obsazené (přiřazené), tak nyní mi zbývá používat pouze celé bajty? Není to luxus pro práci s hodnotou "0" nebo "1" požít celý bajt?
if pinA.0 = 1 then let bit1 = 1
Jde o to, že když napíšu "pinA.0 = bit1", tak při každé změně stavu na pinu A.0 se automaticky změní také hodnota bit1. Ale já po stisku (resp. uvolnění) tlačítka potřebuji pracovat s informací, že bylo tlačítko stisknuto. Proto jsem to vyřešil "mechanicky" - ručním zápisem "if pinA.0 = 1 then let bit1 = 1" ... když je podmínka splněna (tlačítko stisknuto), tak se mi příkazem "let bit" obsadí bit a po uvolnění tlačítka si bit danou hodnotu pamatuje pro další možnou budoucí prací s touto informací. A jakmile už tuto informaci nepotřebuji, tak ji vynuluju "let bit1 = 0" ...
Po dobu co bit1 = 1 mne nezajímá, kolikrát bude tlačítko stisknuto. Tímto způsobem řeším i možné zákmity tlačítka nebo kombinace "if", kde potřebuju vědět, jestli už bylo stisknuto, ale nezajmá mne kdy a kolikrát.
Ale přeci jen bych měl jeden technický dotaz ...
co do počtu bitů mám k dispozici pouze 16 bitů (bit0 až bit7 (b0) a bit8 až bit15 (b1))? Co kdybych potřeboval pracovat s více bity - s více uloženými informacemi, ale je pro mne škoda obsazovat kvůli informaci jestli je nebo není =1 celý bajt .. dá se nějak pracovat s jednotlivými bity dalších bajtů? jak "oslovím" jednotlivé bity z b2, b3, atd.? Co jsem pročítal návody, tak jsem našel informaci:
K dispozici je 14 byte b0 až b13, které mohou být sdružovány po dvou v 16 bitová slova (word) w0 až w6. Jednotlivé bity b0 a b1 mohou být také adresovány jako bit0 až bit 15.
Ale co kdybych chtěl pracovat s jednotlivými bity dalšího bajtu ... co se mi stane po zápisu bit16 nebo třeba bit100?
Protože pokud bych chtěl např. při splnění podmínky dvou bitů "if bit1 = 1 and bit2 = 1 then ..." obsadit další bit pro budoucí zpracování a bity z b0 a b1 už mám obsazené (přiřazené), tak nyní mi zbývá používat pouze celé bajty? Není to luxus pro práci s hodnotou "0" nebo "1" požít celý bajt?
-
- Příspěvky: 393
- Registrován: 02 dub 2014, 15:30
Re: Dotazy začátečníka 2
https://www.google.cz/url?sa=t&rct=j&q= ... iA&cad=rja
navrhari neudelali primy pristup ke kazdemu bitu registru v procesoru.
spoustu stavů vyresis hodnotou/obsahem promenne "byte". nemusis mit vzdycky stav vyjadreny bitově..
-V66
navrhari neudelali primy pristup ke kazdemu bitu registru v procesoru.
spoustu stavů vyresis hodnotou/obsahem promenne "byte". nemusis mit vzdycky stav vyjadreny bitově..
-V66
Re: Dotazy začátečníka 2
Za mapku díky - pomůže (doufám)Vladimir66 píše: ↑22 čer 2017, 23:44
spoustu stavů vyresis hodnotou/obsahem promenne "byte". nemusis mit vzdycky stav vyjadreny bitově..
-V66
Ano, i s bajtem (byte) mohu pracovat, dokonce jsem pro uchování informací vytvořil "mapu" na bitech u b1 a pro pozdější práci jsem ji "překlopil" do b2 ... let b1 = b2 a let b1 = 0 a b1 opět používal po bitech, ale to bylo moc složité (zatím), takže já (zatím) hospodařím s hodnotou pouze "1" a "0" ...
Ale teď mi něco došlo ... díky za to ... já mohu použít např.: "if bit1 = 1 and bit2 = 1 then let b2 = 3" a jinde třeba "if bit1 = 1 and bit3 = 1 then let b2 = 5" a poté používat "if b2 = 3 then ..." nebo "if b2 = 5 then ..."
Jo, to by šlo ...