Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   355 / 360
(#) niedziela válasza kokozo hozzászólására (») Dec 21, 2022 /
 
Idézet:
„szabályozható trimmer”

Erre mi szükség ?
(#) suvalovo válasza kokozo hozzászólására (») Dec 21, 2022 /
 
Valami ilyesmire gondoltam csak nem tudtam ilyen szépen megfogalmazni. Egyébként tegnap elvégeztem a házi feladat egy részét amit adtatok. A belső órajel és az RTC között pontossági különbség is van vagy csak a kimenetek (sec, min, óra, nap, év) miatt használjátok (remélem nemsokára én is:crazy
Kerestem amit ajánlottatok helyi kereskedésben, de csak RTC 58321 periféria áramkört találtam, ha jól láttam itt nincs soros kapcsolódásra lehetőség (D0-D3), mert nem látom az SCL és az SDA lábat amivel ez elvileg elvégezhető, vagy itt az SDA lábra rákötöm és az órajellel segítségével a PIC szétválogatja?
https://www.ret.hu/media/product/9508/625781/RTC58321.pdf
köszönöm a segítséget
(#) kaqkk válasza suvalovo hozzászólására (») Dec 21, 2022 /
 
Ez van a "kereskedésben" Egy picit pontatlanabb mint amit először ajánlottunk de a kezelése ugyanaz
A hozzászólás módosítva: Dec 21, 2022
(#) niedziela válasza suvalovo hozzászólására (») Dec 21, 2022 /
 
IC szinten nem érdemes foglalkoznod vele, vegyél modult az kész
Ha nem akarsz naptározni és hetekre előre redőnyt programozni, akkor a belső órajeles óra is tökéletes.
Még valódi órát sem kell írni hozzá csak egy számlálót ha minden nap ugyanakkor akarod zárni nyitni.
A hozzászólás módosítva: Dec 21, 2022
(#) kokozo válasza niedziela hozzászólására (») Dec 21, 2022 /
 
Minimálisan el lehet húzni a frekvenciát, ezzel is lehet pontosítani az időt, de természetesen lehet idő korrigáló változóval is amit menüből lehet állítani..
(#) Bakman válasza suvalovo hozzászólására (») Dec 21, 2022 /
 
Félreérted az egész RTC koncepciót.

Mindkét láb kell, SCL és SDA is. SCL az órajel, SDA pedig az adat. Az I2C egy kommunikációs protokoll, jelen esetben a PIC a mester, az RTC IC a szolga. A PIC kérdezgeti az RTC IC-t, az meg válaszol, elmondja az időt, dátumot stb. Beállításkor a PIC mondja meg, adott pillanatban mennyi az idő és ezt az IC átveszi, onnan folytatja a számlálást.

A PIC a kapott adatcsomagokból a beleírt program segítségével (jó esetben) szétválogatja az adatokat, úgy mint óra, perc, másodperc, nap, hónap, év stb. Ezekkel az adatokkal már azt csinálsz, amit akarsz.

Előnye az RTC IC-nek, hogy lehet rá rakni kis elemet, amellyel évekig elvan áramszünet esetén is.
(#) suvalovo válasza kokozo hozzászólására (») Dec 21, 2022 /
 
Ott azt a égetésnél gondolod vagy a kijelzőn gombokkal?
(#) kaqkk válasza suvalovo hozzászólására (») Dec 21, 2022 /
 
Mindkét megoldás járható , a második talán annyiból jobb hogy nem kell szétszedni a cuccost a pontosításhoz .
A hozzászólás módosítva: Dec 21, 2022
(#) suvalovo válasza Bakman hozzászólására (») Dec 21, 2022 /
 
Ezt a részét értem, a kérdés csak az volt, hogy ennél az IC leírásában nem találtam SCL és SCA lábat, mert ha külön lábakon hívom le, akkor egyértelmű, ha nem akkor a címeket (óra ,nap stb) hogy kérem le mert nincs hozzá semmi, vagy csak nem találtam
(#) kaqkk válasza suvalovo hozzászólására (») Dec 21, 2022 /
 
Egyszerűen másfajta kommunikációt használ az az ic amit te találtál .
(#) niedziela válasza kokozo hozzászólására (») Dec 21, 2022 /
 
timer0 frekvenciáját lehet set-elni egy sor C-vel kerekre.
(#) kaqkk válasza niedziela hozzászólására (») Dec 21, 2022 /
 
Én a timer2-t szeretem használni a megszakításhoz az kerek értékre beállítható , rollover 256 os értékét 250 re átírva a páros értékű osztások kerek értéket adnak (ha kerek értékű a kvarc )
A hozzászólás módosítva: Dec 21, 2022
(#) niedziela válasza kaqkk hozzászólására (») Dec 21, 2022 /
 
Ahol van, és ahol más nem használja... ott kitűnő választás.
(#) kokozo válasza niedziela hozzászólására (») Dec 21, 2022 /
 
A quartz-ok nem halálpontosak, és ezt a pontatlanságot lehet kihúzni a trimmerrel, hiába állítod be kerek értékre a timert ha az órajel naponta x-szer csak 1-el is kevesebb vagy több.
(#) kaqkk válasza kokozo hozzászólására (») Dec 21, 2022 /
 
Erre találtam ki azt hogy a fix megszakítást egy menüből állítható változóval trimmelem , bőven elég +1-1 értéket állítani a pontosság eléréséhez És ezt a részt egy második menüben állítom hogy a normál beállításnál ne lehessen elállítani .
A hozzászólás módosítva: Dec 21, 2022
(#) kokozo válasza kaqkk hozzászólására (») Dec 21, 2022 / 1
 
írtam is, hogy vagy hardveresen vagy szoftveresen is lehet
(#) niedziela válasza kokozo hozzászólására (») Dec 21, 2022 /
 
Valóban nem halál pontosak, egy 20ppm-es kristálynak havonta akár 1 perc hibája is lehet.
Van még kicsit drágábban 10ppm -es is.
Na most te a 20ppm -es kristályt még e trimmerrel megigazítod.
Hadd ne mondjam....
(#) kokozo válasza niedziela hozzászólására (») Dec 21, 2022 /
 
Pont az ilyen 1 perceket lehet vele kiszedni, ha tudod mennyit siet vagy késik a rezgőkört hangolhatod jó irányba minimálisan, és lehet hogy havi 1 percet fog késni. De próbáld ki ha nem hiszed.. Csinálj 2 órát az egyikbe 2 egyforma pl 33pF -os kondit rakj a másikba meg 33 27pF-osat. A második sietni fog mindig..
A hozzászólás módosítva: Dec 21, 2022
(#) Horváth P Tamás hozzászólása Dec 28, 2022 /
 
Sziasztok,áttnézné valaki a következő programot? Aflowcode ban müködik az Isis ben is , de amikor acsibbe szeretném égetni akkor hibát ir . Valoszinü , hogy a pick kit 2 vagy a flowcode beállitásai hibássak. Köszi a segitséget előre is .

Kodzar2.fcf
    
(#) kaqkk válasza Horváth P Tamás hozzászólására (») Dec 28, 2022 /
 
A hex szépen kifordul , jó lenne látni milyen hibakódot dob ...
(#) Ferkógyerek válasza Horváth P Tamás hozzászólására (») Dec 28, 2022 /
 
Szia!
A konfigurációs bitek beállításai szerintem nem jók próbáld meg a melléklet szerint.
Van egy warning a fordítás során
Idézet:
„Warning: function never returns: 'FCM_Kod'
ezzel foglalkozni kellene.
Órajelnek 8MHz-et adtál meg, viszont sehol nem látom hogy beállítottad volna az OSCCON regiszteren. A 16f886 alaphelyzetben 4MHz-en ketyeg, ez nem végzetes hiba, csak a program fele sebességgel fut, ahhoz képest amire számítanál.

config.png
    
(#) Horváth P Tamás hozzászólása Dec 28, 2022 /
 
Köszi a segitséget
(#) Horváth P Tamás hozzászólása Dec 31, 2022 /
 
Boldog új esztndöt kivánok mindenkinek.
(#) djadji hozzászólása Jan 30, 2023 /
 
Sziasztok! Jó ideje nem használtam a flowcode6-ot. MOst kezdésnek betettem egy LED-et, a tulajdonságokban kijelöltem a PIC lábát, amihez csatlakozzon. Szimuláció futtatásakor és fordításkor is kiírja, hogy a LED "egy vagy több lába nem kapcsolódik a mikro vezérlőhöz". A szimuláció elindul és villog a led, de HEX-et nem generál belőle.
Eddig ilyennel nem találkoztam. Valaki tudja mi lehet ez?

Közben megtaláltam. A panelen csatlakoztattam, de a komponensek között nem. Furcsa ez a 3D panel, nem igazán tudom kezelni.
A hozzászólás módosítva: Jan 30, 2023
(#) kaqkk válasza djadji hozzászólására (») Jan 30, 2023 /
 
Tedd fel a fájlt , ha látjuk mit csináltál lehet hogy egyszerűbb mintha csak találgatunk .
(#) djadji hozzászólása Jan 30, 2023 /
 
Másik kérdésem viszont van, régóta. Mindig problémát okoz, hogyan is állítsam be a Flowcode-ban a PIC órajelét. A Flowcoda-ban Build- Projekt opciókban csak azt állítom be, hogy a program milyen órajelű PIC-hez készüljön el. De ez nem állítja a PIC órajelét valójában. Jól gondolom?
De hol állíthatom a valós PIC órajelét?
- Tudom az "OSCCON= 0b01110100;" magában a program kódban, de ez valahogy nem tetszik.
- Vagy amikor égetem (én egy külön égető progti használok: Pickit 3 programmer) abban lehet állítani a Config résznél, ha jól gondolom, legalábbis hogy külső, belső, Lp, Xt, stb...
De ezt nem lehet valahol a Flowcode-ban beállítani? X menü, Y pontja, hogy a config és az OSCOON hogyan nézzen ki?
Szóval: Ti hogyan szoktátok a PIC valós órajelét beállítani?

UI: Csak azért kérdezem mert a legtöbb netes példában nincs benne az a ronda OSCCON= sor. Van valahol valami "rejtett" beállítás? Rendszerint nekem elég lenne a belső óra pontossága is, de végül többnyire egy külső kristályt rakok rá, ami nem túl gazdaságos, és felesleges lábakat vesz el.
(#) Bakman válasza djadji hozzászólására (») Jan 30, 2023 /
 
A Projekt opciókban megadott érték igazábol egy egysoros C kódot generál, ami valami ilyesmi:
  1. #define _XTAL_FREQ (32000000)
Vannak olyan függvények, amelyek használják ezt az értéket, pl. a Delay ilyen. Ha itt hibás érték van megadva, akkor ezen függvények hibás időzítésekkel fognak futni. Ha a programban nem használsz olyan függvényt, amelyiknek szüksége lenne erre az értékre, a fordító nem fogja figyelembe venni, lehet ott bármi. Ugyanakkor ennek helyes kitöltése mindenképpen ajánlott, mert nem tudni, a háttérben milyen függvények/makrók támaszkodnak erre.

OSCCON: tetszik, nem tetszik, ez így működik. Ha belső órajelet használsz, valahogy meg kell mondani a PIC-nek, mire állítsa be a belső órajelet. A regisztert két esetben nem kell piszkálni:
1: Belső órajelet használsz és az alapértelmezett érték megfelel (lásd melléklet, pl. PIC18F14K22).
2: Valamilyen külső órajelet/kvarcot/rezonátort használsz.

Külső kristály: Pontosabb mint a belső, cserébe buksz egy-két lábat. Időalapú kommunikációnál és időmérésnél lehet érdekes a pontosság, pl. UART (RS232), 1-Wire (pl. DS18B20), stopperóra. Élvezérelt kommunikációnál, ahol a fel- vagy lefutó élek adják az ütemet és az eszköz nem ragaszkodik kimondottan egy sebességhez (SPI, I2C, 2x16 karakteres LCD kijelző), elég a belső órajel pontossága.

Mellékszál: minél bonyolultabb a PIC, annál összetetteb pl. az órajel beállítása is.
A hozzászólás módosítva: Jan 30, 2023

osccon.png
    
(#) djadji válasza djadji hozzászólására (») Jan 30, 2023 /
 
Közben úgy vettem észre, hogy a Flowecode Build - Projekt opciók - Beállításoknál levő beállításokat (Watch dog, internal-external clock) azokat átveszi az egétő program.
Viszont akkor nem értem a következőt:
- 12F629: Elvileg van benne egy 4MHZ-es óra, ha jól értem ez az alapbeállítás. (mondjuk mi van ha nem ennyivel, hanem kevesebbel szeretném futattni? Erre nem találtam semmit az adatlapján)
- Ha beállítom a configban hogy 100 (= INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN) és Flowcode-dal (4 Hhz-re állítva) egy LEDet villogtatok 1 másodpercenként (delay 1 sec) akkor láthatóan gyorsabban villog mint ahogy egy sec eltelik.
Értem hogy a belső óra nem pontos, na de ennyire?!
(#) Bakman válasza djadji hozzászólására (») Jan 30, 2023 /
 
Idézet:
„Közben úgy vettem észre, hogy a Flowecode Build - Projekt opciók - Beállításoknál levő beállításokat (Watch dog, internal-external clock) azokat átveszi az egétő program.”
Igen, mert ezek a konfigurációs beállítások, ezek egy különálló memóriaterületet képviselnek a PIC-ben.
Idézet:
„- 12F629: Elvileg van benne egy 4MHZ-es óra, ha jól értem ez az alapbeállítás. (mondjuk mi van ha nem ennyivel, hanem kevesebbel szeretném futattni? Erre nem találtam semmit az adatlapján)”
Ez nem alapbeállítás, hanem egy fix érték, a belső órajel nem lehet sem gyorsabb, sem lassabb.
Idézet:
„- Ha beállítom a configban hogy 100 (= INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN) és Flowcode-dal (4 Hhz-re állítva) egy LEDet villogtatok 1 másodpercenként (delay 1 sec) akkor láthatóan gyorsabban villog mint ahogy egy sec eltelik.
Értem hogy a belső óra nem pontos, na de ennyire?!”
Valószínűleg kalibrálni kell a belső órajelet. Szándékos félreklibrálással lehet gyorsítani/lassítani.

Tools menü -> osccal -> Auto Regenerate (miközben a PIC csatlakoztatva van a PICKit3-hoz)
(#) djadji válasza Bakman hozzászólására (») Jan 30, 2023 /
 
Ó. KÖSZÖNÖM! Sok dolog lett tisztább.
1000 hála!
Következő: »»   355 / 360
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem