Fórum témák
» Több friss téma |
Sziasztok.
A következö lenne a kérdésem. Ti hogy oldanátok meg piccel, hogy az egyik lábán(rutinszerüen a pwm kimeneti láb)egy relative alacsony ferekvenciásáju(változtathato, 10-100hz), szabályozhato kitöltési tényezöjü jel jelenjen meg, egy másikon pedig az elöbbi láb jelének lefutása pillanatában egy stabil, és mindig állando "impulzushosszu" impulzus jelenjen meg. Én két lehetöségre gondoltam, vagy kivülröl müveleti erösitövel megoldani a dolgot, vagy olyan picet választani amiben van eccp funkcio, bár azzal nekem még sosem volt tapasztalatom. A másik probléma, meg hogy ilyen alacsony frekvenciához alacsony frekis oszcillátor kell,ami meg ugye " az azonnal jelenjen meg a stabil impulzus" rovására menne... nem? Köszönöm a válaszokat
Szerintem ez nem olyan bonyolult. A pwm-et előállítod a modullal ahogy akarod, ezt a jelet beviszed a külső megszakítást fogadó lábra, beállítod, hogy lefutó élre adjon megszakítást, megszakításba egy timerrel előállítható a megfelelő jelszélesség egy másik lábon.
Remélem jól értelmeztem a feladatot. A hozzászólás módosítva: Dec 2, 2017
Meglehetőst kicsike frekvenciákat adtál meg. Abban a tartományban akár programozhatod is az impulzusokat egy timer-hez, és akkor nem kell pwm modullal tapasztaltnak lenned sem
A hozzászólás módosítva: Dec 2, 2017
Köszönöm, jol értetted Ha jol gondolom akkor a pic int0 lába alkalmas lesz erre a bevezetésre Egyébként pic kimenet és pic bemenet közé nem kell más elem, pl ellenállás, ilyet még nem.csináltam, még sosem kötöttem össze egy ugyanazon pic lábát, az általad leirt modon. Szabad ezt minden külsö elem nélkül?
Ez tetszik, ezt ki fogom probálni, bár elfogadnék ehhez néhány instrukciot, mert ilyesmit még nem csináltam Egyébként egyes picek osctune regisztere mire valo?
Azt tudom, de minek, ha egyszer az osscon reg.ben lehet a frekit beállitani?
Hangolni lehet a beső RC oszcillátort kb. +/- 10 %-kal.
Én sem csináltam még ilyet a gyakorlatban, de hasonlót javasoltak már nekem is. Egy ellenállást nem árthat, de szerintem nem szükséges.
A lényeg egy max órajelre pörgetett gyors pic, és egy beállított timer, hogy legyen gépórád. A programot megírod aszinkron főciklus stílusban, nem terheled a főciklust semmi logikai dologgal, foglalkozol csak az időpillanat előreszámításával, mikor válts jelet, és jelet váltasz. A főciklusnak célszerűen vagy 100x gyorsabbnak kellene lennie, mint az előforduló legmagasabb frekvenciád ciklusideje, de azt jelen esetben nem nehéz elérni, ha csak nem akarsz ugyan arra a pic-re usb-t, ethernetet, vagy bármi keményebben terhes libet is feltolni. Ha mégis, na akkor viszont vagy kell neked a hw pwm, vagy dobj fel egy második pic-et is a panelra.
Jelen esetben kvarcot célszerűbb használnod, és olyankor nem kell a belső rc oszcillátor semmire. Vagy ha elég neked a +/- 10% pontosság, lehet belső rc oszcillátor is, de hangolnod akkor is céltalan, elvégre nincs referenciád külső hőmérsékletből, külső órajelből, meg semmiből. Én sosem szerettem az önmagukért való elméleteket, az rc hangolósdit mindig is hagytam a fenébe.
Szép estét!
Mellékletben egy Flowcode forrásfájl, minden tartozékával, amit csak a program generál. Egy egyszerű kis programocska, 2x16 LCD és egy DS18B20 szenzor. Ha minden igaz, akkor a "1WireTeszt_18F2580.casm" nevű fájl tartalmazza a teljes C forráskódot. Ebben, feltételes elágazások között, van egy Lookup table "//CRC lookup table for the OO...". A kérdés az, hogy ez a 256 bájtos tábla benne van-e az asm és/vagy hex fájlban (feleslegesen foglalva a helyet). A program nem hivatkozik rá sehol, elvileg nincs benne de az asm és a hex fájl átböngészése már magas nekem. Előre is köszönöm.
Tényleg ritka gusztustalanul csubakkás egy program. Nem is vágom, hogyan fordul az le..
Van egy trükk szimbólum keresésre, ha már más nem segít. Fogod az egész projectet, kiszeded belőle az exe-ket, hex-eket, doksikat, akármi bináris cuccokat, hogy csak a forráskód maradjon valamilyen mappa szerkezetben, aztán fogsz egy winrar-t, és becsomagolod az egészet rar típusú archívumba "Raktároz" opcióval. Raktározás esetén olyasmit csinál, mint linux alatt a tar, egyetlen szövegfileba összemásol mindent. Úgy nem kell 100 féle állományban kotorászni, csak egyetlen egyben. Utána wordpaddal megnyitod, és rákeresel a nevekre. Ha nincs rá jobb oldali hivatkozás a forrásban, akkor nem csinál vele semmit. Jelen esetben én nem találtam rá hivatkozást. Ami kicsit zavaró, hogy némelyik fordító környezet előre definiált szimbólum neveket használ implicite, és abban nem vagyok képben, hogy amivel fordítod ezt a cuccot, annak milyen rigolyái vannak. Mi a bánat az a "BoostC Compiler"? Na nem mintha tényleg érdekelne, költői kérdés volt, pusztán csak jelezném neked, hogy ha nem tiszta anyagot szívsz, hanem valami pancsoltat, mert abból a több is olcsóbb, ne csodálkozz rajta, ha mellékhatásként belehü**ülsz Idézet: Szeretek egyszerűen élni. „Tényleg ritka gusztustalanul csubakkás egy program.” Idézet: „Tényleg ritka gusztustalanul csubakkás egy program. Nem is vágom, hogyan fordul az le..” nem csodálkozom rajta, egy magas szintű nyelv követte el: FlowCode. Módszerek: 1 - A CRC táblázatot első 2 -3 elemét megkeresed a program memóriában. Folytatható több adatra is az egyezés vizsgálat. 2 - Kiértékeled a feltételes fordítás engedélyezését akár fejben, akár egy másik utasítás (sorozat) ugyan ilyen feltétellel vezérelve. 3 - Kikommentezed az egészet és lefordítod. Ha hibajelzés lesz, akkor szüksége van a részletre. 4 - Nem kell trükközni az állományokkal, a .lst állományban elvileg minden a kódba fordított szakasz benne van.
Sziasztok!
16F819-el készítettem egy I2C Slave eszközt, eddig csak kiolvastam belőle, ez a része működik is. Viszont most kellene írnom bele pár bájtot. Sajnos kicsit már bele kavarodtam és nem látom át, hogy mikor mi van az SSPSTAT regiszterben íráskor. Megszakításból kezelem, de olyan mintha nem akkor jönnének az adatok, mint kellene. Adatok beírását kb az EEPROM-hoz hasonlóan végezném, tehát slave address - regiszter kezdőcím - byte1 - byte2. Egyáltalán küldhetek egymás után három adat bájtot? BASIC-et használok, de a beépített rutinokat kerülöm. Van valami jó példátok erre? Nem kell feltétlenül BASIC. Sajnos most csak telefonon van netem, így kicsit nehézkes a keresés. Köszi!
A list állományt nem néztem meg, de egy intelligens embedded fordító nem optimalizálja ki akkor sem, ha nincs rá jobb oldali hivatkozás, elvégre elektronikai környezetről beszélünk, aminek lehetnek hardverből következő műveletei is, mert az alu nem az egyetlen egység, ami memória hozzáféréseket végezhet.
Telepítenem kellene azt a környezetet, feltolnom a firmware-t arra a hardverre, amire szánták, és ellenőriznem azon, hogy vele meg nélküle ugyan az-e a működése. És tudod mit? Fáj a hócipőm vacakolni vele azért a pár100 byte-ért. Csinálja csak @Bakman, ha már annyira unatkozik, hogy nekiállt bajt csinálni a saját fejére Léteznek olyan hardver alapú védelmek, amik nekiesnek átfésülni a teljes memóriát egy beégetett számsorozatért, és ha nem találják meg, akkor azt mondják, hogy nem engedélyezett fordítót használtál a szoftver fordításához, és nem futtatják a programot, blokkolják az alu-t is. Például almáék csináltak olyat a provisioning-mániájukkal. Van egy hardveres provisioning, és utána sok lépcsőben logikailag felépítve szoftveres provisioning is mindenféle sw kulcshoz. Ha fejlesztettél már ios alatt, akkor biztos összetalálkoztál vele. Na például az is ilyesmi a gyakorlatát tekintve. Viszont mindannak mikrovezérlős környezetben természetesen nulla keresnivalója van.
Nem láttam a hex-ben ilyet, de már az asm-ben sem.
Idézet: „A list állományt nem néztem meg, de egy intelligens embedded fordító nem optimalizálja ki akkor sem, ha nincs rá jobb oldali hivatkozás, elvégre elektronikai környezetről beszélünk, aminek lehetnek hardverből következő műveletei is, mert az alu nem az egyetlen egység, ami memória hozzáféréseket végezhet.” Nem beszéltem optimaléizálásról, az ide belinkelt forrásrészletben található feltételes fordításról beszéltem. Ugyan a 1-Wire kommunikáció része a CRC számítás, de ahogy látom itt a kódban ez kikapcsolható... Ezenkívül van rövidebb, de lassabb módszer a CRC számításra.
Idézet: Igen, éppen ez lenne a lényege mert a gyári makró egy kalap szerencsétlenség még önmagához képest is. Csak a OneWire TX és RX makrókat akarom használni, saját táblával a CRC számításhoz úgy, hogy a gyári tábla ne kerüljön bele feleslegesen. „a 1-Wire kommunikáció része a CRC számítás, de ahogy látom itt a kódban ez kikapcsolható”
A legeslegelső sorban CRC_EN 0, gondolom azért nem fordítja bele.
Erre gondoltam én is, "csupán" a biztos tudás hiányzik az ellenőrzéshez.
Sziasztok!
Nekem egy olyan kérdésem lenne, hogy: Szeretnék építeni egy egyszerűbb akkumulátor felügyelőt. Ennek funkciója annyi, hogy ha a 14,8 V-ról leesik a feszültség 12 V-ra, akkor a PIC lekapcsolja a terhelést az akkuról. Úgy gondoltam ezt megcsinálni, hogy egy feszültségosztóval csinálok egy PIC-el mérhető jelet (5 V max). Ezt rávezetném a PIC komparátorának Cin- lábára. Ehhez kötnék egy PIC-en belüli referenciaértéket. A probléma: butáskodik a feszültség, ha nincs maxon a poti (szimulációban), akkor úgy működik kb, hogy amíg majdnem teljesen fel nincs tekerve a poti, addig 0,01-2 V van. Szóval valami a feszültségosztós résznél van probléma. ehhez kéne nekem valami segítség. Mellékeltem a rajzomat (a LED egyenlőre a FET+terhelés) és a kódom. Köszi előre is A hozzászólás módosítva: Dec 3, 2017
Mert a GP1 port kimenetnek és 0-ra van állítva.
Arra a feladatra elég egy mezei analóg műveleti erősítő, meg egy feszültség referencia, és ki / bekapcsolgatni a relét az opa kimenetéről. Minek oda pic?
Szioasztok
Olyan kérdésem lenne hogy soros portnál a szint illesztés utáni rx tx -et lehet párhuzamosan használni egyszerre 3 picnél? Elküldött adatba külömböztetném meg hogy kinek kültem az adatot. pl <picid><Adatok>
Itt: Bővebben: Link.
Teljesen mindegy, TX lábakat nem szabad közvetlen összekötni. A linkelt kérdés után van egy válasz, azt is olvasd el.
Hopsz igen ott a válasz.
Akkor 3db szintillesztö mindegyiknek és szintillesztö ellöt közösitek pc felöli rész?? MAX232 használnék. A hozzászólás módosítva: Dec 4, 2017
Itt: Bővebben: Link. A diódás megoldás jónak tűnik. Tesztelni nem teszteltem, ilyenre még nem volt szükségem.
|
Bejelentkezés
Hirdetés |