Fórum témák
» Több friss téma |
ROM available:2048 words, used:3065 words (149.6%), free:-1017 words (-49.-6%)
Nagy valószínűséggel nem fér bele a 628 programmemóriájába a kód , 18f re átportolva lefordul . Probáld meg a string változókat kivenni belőle (ahogy láttam mind 0) és másképp megoldani , hátha csökken a kódméret és belefér a 628 ba
Teljes biztos, hogy a méret 149.6%-a nem fér bele, ha csak nem púpos az oldala a pic-nek
Nem kicsit van elbonyolítva... A hozzászólás módosítva: Dec 1, 2022
Köszönöm szépen
Cseréld le a picet 16f88-ra abba belefér minden módosítás nélkül, és lábkompatibilis is.
Több lábat használsz mint amennyi van a PIC-nek.
Nem tudom mi volt a cél, de ez belefért.
Üdv!
Segítségeteket szeretném kérni a következő a feladat, két redőnyt akarok működtetni időkapcsolóval. Az óra programozását megcsináltam azzal a hibával, hogy amikor napot vált az utolsó karakter ott marad (9), hogyan lehetne ezt elegánsan megoldani hogy a karakterek ott maradjanak a helyi értékükön, vagy ott is külön kellene a két számot kiíratni. A másik gondom nem lehet az időt valahogy egyszerűen lehívni, majd ezt egy változóban rögzíteni, majd ezt programozni? Elkezdtem valamit csinálni, viszont az idők beállításánál kicsit elakadtam, mert ott az idő beállításakor valahogy a kijelzőt váltanom kellene, hogy most melyik redőny hányadik ciklusát szeretném állítani. Ugyanis a gyári redőnymozgatók csupán napi 1 alkalommal engedik le és fel a redőnyöket. köszönöm Attila
Nem néztem át tüzetesen a programot de ha a fentmaradó karakterekkel vívsz , két-három megoldás is van 1: csinálsz egy kijelző törlést és azután írod ki az értéket
2: sortörlés majd kiíratás (így csak az újraírt sor törlődik) 3: a kiírt adat után még teszel egy string kiírásban egy két space-t) " " így
Megnéztem, sajnos ez nem jó irány semmilyen formában.
Ha nem használsz külső RTC-t akkor azt kontrolleren beül megszakításból kell megírni. Ha előre napokra akarsz működést programozni mindenképpen használj RTC-t. Ezen kívül egy SET menüt kellene mindkét redőnyhöz megírni, ahol az adott redőnyre vonatkozó összes beállítás paraméterezhető.
Ez egy lehetséges megoldás A menüre Viszont az RTC szerintem is jó megoldás . A DS3231 nálam bevált pontos-olcsó -kicsi
A hozzászólás módosítva: Dec 20, 2022
Köszönöm, de az az igazság, hogy itt akadtam el ebben RTC az egy külön IC ami jelet küld másodpercenként vagy percenként az egyik lábról a másikról naponta a harmadikról hetente?
Nem találtam róla leírást csak utaltak rá, a másik nyilván az angol nyelvtudás hiánya amivel az IC leírásában valahol szerepel. Ebben kérném a segítséged.
Ennél hogyan hívtad le az időt mint változót? Egy érték lesz az idő vagy külön érték a perc és az óra? Látom, hogy van kijelző, de hogyan tudok ebből jelt küldeni, programozni.
A hozzászólás módosítva: Dec 20, 2022
Az rtc két lábon kommunikál a piccel , lekérhető belőle az idő a dátum a hét napja és még a chip hőmérséklete is . A link alatt találsz pédafájlt (régebben többen próbáltuk a 3231 et) Bővebben: Link De nem árt ha végignyálazod az rtc adatlapját
A hozzászólás módosítva: Dec 20, 2022
Ez igy egyben sok lesz kezdésnek.
Első lépésben ismerkedj meg az alapokkal, kisebb programokat írj, majd menükészítés. második lépésben a i2c kommunikációval, RTC-vel, harmadik lépésben ha mindkettő megy külön-külön, akkor rakd össze a kettőt.
Lentebb már linkeltem egy videót amiből megértheted a menü készítés alapjait . 11:47 kor
A hozzászólás módosítva: Dec 20, 2022
Létre kell hoznod egy menüt amiben egyszer kezeled az órát, annak beállításait.
Aztán a menünek tartalmazni kell még a két redőny beállításait, a redőnyök ki / be kapcsolásának idejét...stb. Ebben a menüben veszed fel a működéshez szükséges változók értékét. Gyakorlatilag egy ébresztő órát kell készítened.
Sokan sokféle képpen készítenek menüt, meg függ a menü rendszere az adott programtól is.
De megérteni miről beszélünk, elképzelésnek egynek jó lehet. Minta nincs befejezve, csak egy szösszenet, azaz kivágtam egy programból és kitöröltem pár részt ami csak zavarna ! Nem kommentelem a működését, azt meg kell értened ha tovább akarsz jutni. A hozzászólás módosítva: Dec 20, 2022
Szia!
Az előző példákkal ellentétben amik blokkolják a menü alatt a főprogram futását, ami bizonyos esetekben nem járható út, (tudom tudom timer..) én egy egyszerűbb de használhatóbb verziót mutatnék.. Itt folyamatosan lehet állítani az értékeket amivel a főprogram azonnal tud számolni akár, ez pl egy motor fordulatnál vagy fényerő állításnál sokkal jobban alkalmazható, mert látod mit csinálsz. Óra beállításra is egyszerűbb használni, mert a legtöbb óra így működik, amit állítassz az villog. Direkt csináltam függőlegesen, de vízszintesre átfordítani se nagy kaland, csak az lcd cimzéseket kell átírni.
Én mostanában ezt a megoldást preferálom (nem blokkolja a programot) egyszerű átlátható , és mintha a memóriaigénye is kisebb lenne mint a gyári gombkezelésnek .
Persze, mert bármilyen makro műveletnél egy port olvasás sokkal gyorsabb, és memória igénye is kisebb.
Ő is evvel a megoldással készült Éppen ma fejeztük be
A hozzászólás módosítva: Dec 20, 2022
Minek kell 2 gomb? 1 is elég lenne.. De amúgy jó lett! Gratula hozzá
Menü léptetés- beállítás , egyébként gondolkodtam az egy gombos menün (sőt próbáltam is ) de nem sikerült megyőznie . 3s ig nyomva a gombot a menüpontok közt lépett egy egy gyors nyomásra meg állította az értéket . Nehézkes volt a használata ...
A hozzászólás módosítva: Dec 20, 2022
Menüléptetés "hosszú" gombnyomás pl 3 sec, beállítás meg rövid..
A következőben már nem lesz gomb (GPS fogja adni az idő-dátum adatokat ez még csak DS3231 RTC-t használ )
A hozzászólás módosítva: Dec 20, 2022
Bocsánat a program menürendszerére gondtál.
Ennél a megoldásnál elengedtük RTC ha jól látom. Az csupán a kérdésem még, hogy az előzőprogramomnál a késleltetést úgy oldottam meg, hogy egy változót hoztam létre az időre mert nem akartam, hogy a program megálljon és más parancsokat is ki tudjak adni megállítani a folyamatot. A gond az volt, hogy a késleltetéseket összeadva nem az az idő jött ki (40*1000ms =40s)és nem annyi lett hanem kevesebb, Ez lehetséges vagy valamilyen beállítást rontottam el, annál ez nem volt gond, mert lemodelleztem és állítottam a cikluson de ezt az óránál nem biztos, hogy jó. Ja egyébként köszönöm a segítségeteket át kell még futnom de nagyjából értem.
Ha nem kell halálpontos időzítés, akkor nem kell rtc. Tehát rtc nélkül 1-2 perc havontasimán előfordulhat. Az időzítésed meg azért nem lett jó, mert minden makronak van saját lefutási ideje főleg az lcd kijelző kiíratásának, amiben gyárilag is van késleltetés. Első körben timerbe tenném az idő kezelését azzal már mérföldekkel javulna a pontosság. A belső órajelet quartza váltanám szabályozható trimmer kondival.
|
Bejelentkezés
Hirdetés |