Fórum témák
» Több friss téma |
Ha jól értem, akkor ez azt csinálná, hogy a másik pic a PORTA-ra kiadott impulzusokat ossza le és ad vissza egy IT-t. Akkor ez így jó lehet, csak azt nem értem hol számolsz le több száz impulzust (ez kb. 5-öt ad másodpercenként).
Jól érted!
Idézet: „csak azt nem értem hol számolsz le több száz impulzust” Nem akartam lelőni a poént, de ha már rákérdeztél: van egy harmadik PIC ami szintén veszi az impulzusokat. Ezzel a PORTC-t, avval pedig a PORTD-t inkrementálom és egyszerűen a két portra kötött ledekkel jelzi a számlálást. Ha megáll bináris formában jelzi, hogy hány impulzust számolt.
Pali!
Ennyi fáradsággal már számszerűen kiirathatnád az egészet egy karakteres LCD-re!
Nem az a baj, hogy nem tudom mennyi volt, hanem, hogy mindig más.
Ha jól emlékszem, a PIC12-esen egy potival állítod, hogy mennyit számoljon, és körönként olvasod újra a poti értékét. Ha ez nem egy helikális poti, és nagyfelbontásban olvasod, az lengeni fog.
Jól emlékszel. Csak sima trimmer, balra shiftelem az eredményt és csak a felső bájtot használom.
Gondoltam arra is, hogy egyszer kiolvasom az AD-t, indulásnál, de aztán valamiért elvetettem a dolgot.
Ha csak a felső byteot használod, és nem szorzod fel az eredményt, akkor elenyésző a lengés. Bár +-1et azért tévedhet. Főleg, ha próbanyák, és hosszú a vezeték.
A 12f675 SK gyártott "végleges nyákon van a trimmerrel együtt, kb 2 mm a vezetősáv és a trimmer és a PIC lába között. Na jó legyen 5 mm...
Több mérést kell átlagolni, főleg ha a táp a referencia (mert az sem stabil), ha egyáltalán már jó a mérés. Jobb híján írhatsz egy rutint, ami annyi impulzust ad ki amit az AD mér, és ezt számoltatod a számlálóval. Esetleg építhetsz egy jobb diagnosztikai eszközt:kezdőknek.
Akkor passz!
Bár az talán még megér egy misét, hogy az ad-t csak egyszer olvasod be. Főleg, mivel megszakításokkal dolgozol. Ugyanis ha ad közben jön megszakítás, az ad leakadhat. (ez saját tapasztalat)
Lehet átrendezem a programot úgy, hogy az AD-t elvégzem és csak aztán engedélyezem a megszakítást, hogy ne tudjon bekavarni.
Még azon gondolkodom, hogy lenne-e értelme várakozással indítani a programot, hogy mire annak vége, addigra beáll a tápfesz is, mert erős a gyanúm, hogy azzal van a gond, hogy amikor feszültség alá kerülnek a PIC-ek és egyszerre kezdenek működni akkor lesz valami zavar a rendszerben amitől valamelyik regiszter kezdőértéke nem a megfelelő, esetleg létrejön egy pici impulzus az egyik lábon amit a másik már megszakítási kérelemként érzékel.
Vélemény?
A PIC tápfeszbeállására van konfigurációs utasítás.
Sziasztok!
Van egy PicKit3-am, és most találtam pár 12F1572-es PIC-et. Viszont az égetőben nem tudom beállítani, hogy ezt a chipet szeretném használni, valószínűleg olyan régi, hogy nem ismeri (gondolom én). Ilyenkor lehet tenni valamit, hogy ne kellejen kidobnom a chipeket és tudjam használni? Még sose futottam ilyen problémába. Lehet letölteni valamit, ami felismerteti a PIcKit3-mal és használhatom?
A 12f1572-t nem mondanám réginek. MplabX alatt nekem írja a PK3.
Ott valami más gubanc lesz. Ez a PIC kb két éve van forgalomban és a Microchip oldalon is ezt írja:
Idézet: „Debug and Programming support is available via PICkit™ 3, and MPLAB® ICD 3”
Sziasztok!
Van egy ilyen programrészletem,PIC-PC kommunikációt szereték megvalósítani.Tud valaki valami egyszerű linket,likeket mondani?Azt sem értem hogy lesz elküldve egy értelmes szó!Hogy küldik el,hogy "init complete!"?Vagyis arra gondolok,hogy hogy programilag hogy oldották meg,hogy egy betű helyett egy egész mondatot elküldenek.A *s-el lesz valami...
Kézi kiválasztást használok, ott a 12F-eknél csak 5,6,7-tel kezdődő PIC-ek vannak.
Mintha rémlene hoy volt valahol olyan lehetőség is, hogy autodetect, de most nem találom. (3.10 van fent, korábban 2. valamennyi volt). Már nincs autodetect? Vagy valamit rosszul választok ki? (próbáltam a device famaily-ben a baseline-t és a midrange-et is)
Ahogy latod, van egy pointer, ami a stringre mutat.
Eloszor ellenorzi, hogy kuldhet-e adatot, utana a pointer altal mutatott cimrol levo BETUT beteszi a kuldesi regiszterbe, ami elkuldi szepen, es ha sikerult, akkor ezt azzal a bittel jelzi, amit latsz. Igy tudni fogja, mikor mehet a kovetkezo betu, amihez megnoveli a pointert 1-el. egeszen addig csinalja ezt, amig tart a szoveg. De ezt te is elolvashatod, a kommentekben talalhato a vegen, a pontosvesszo utan.
Nekem 2.20 van fent, abban ha az all family van kiválasztva, ott benne van a listában.
A PICkit3 -at milyen programmal kezeled?
MpLab 8.xx nem kezeli, MplabX kezeli, IPE (Integrated Progamming Environment) kezeli, PICkit3 standalone program egy PICkit2 -t csinál belőle egy réges-régi Pk2DeviceFile.dat -tal (ver: 1.62.14), ami csak a PIC12F1822 és PIC12F1840 -et ismeri. PICKit2 nem kezeli, még a 1.62.146 verzióval sem. Ebben az esetben egy DeviceFile Editorral lehet felvenni a Midrange / 1.8V min csdaládba...
Most megmondom, hogy a PicKit3 standalone-t használod szerintem. Felejtsd el a PicKit3 programmer szoftvert, használd az MpLab IPE-t.
Még ha hex-et égetni egyszerűbbnek is tűnik akkor sem jó. Az elődjéből a PicKit2-ből lett létrehozva gondolom, de nem nőtte ki a gyermekbetegségeit.
Sziasztok!
Egy PIC PWM-es ventilátor szabályzón dolgozom PIC-kel, amire C nyelven írom a progit. A különböző hőmérséklet tartományokat if..else if utasításokkal vizsgálom. Ha éppen határon van a hőmérséklet, akkor ugrál a PWM érték a két tartomány között. Milyen módszerrel lehetne egy hiszterézist kialakítani két tartomány között? Köszönöm előre is a segítséget. Ati Mod.: usane: Elnézést, nem válasz akart lenni. A hozzászólás módosítva: Jún 4, 2015
Valóban azt hazsnálom. Megpróbálom az MPLAB-ot, és tényleg csak a HEX-et égetem be ezzel, azt hittem erre pont ez való. (flowcode-dot használok, mert lsuta vagyok, ahol kell C betétekkel, ez a legkényelmesebb sztem)
Köszi a tippet!
Bekapcsol ha a szükségesnél x-el kisebb és kikapcsol ha a szükségesnél x-el nagyobb.
Szia!
Én digitális forrasztóállomás programnál azt csináltam, hogy a hőmérsékletet 2 változóba tároltam. Az egyik a hő-volt, a másik a hő-aktuális. Elraktam a ő-volt-ba a kezdő hőfokot, és vizsgálatkor, ha a hő-aktuális nem volt nagyobb vagy kisebb 10 fokkal mint a hő-volt, akkor nem csinált semmit a program. Ha nagyobb volt a különbség mint +-10 fok, akkor elraktam az új hőfokot a hő-volt-ba és be ill ki kapcsoltam a fűtést. Másik megoldás a kerekítés, 10, 20, 50-esre, de azt minden méréskor el kell végezni. Itt csak egy összehasonlítás kell végezni. Biztos van elegánsabb megoldás is, nekem ez bevált.
Szia!
A bekapcsolás pillanatában a referencia értékből vonj ki annyit, amekkora hiszterézist szeretnél. A kikapcsolás pillanatában pedig ugyanennyit adj hozzá!
Igen arra pont jó VOLT, de mivel a MC nem fejleszti tovább így felejtős.
Én is használtam régen, de már 80%-ban új generációs PIc-el foglalkozom és meguntam, hogy mindig szórakozni kellett vele, hogy működjön. Az IPE meg szerintem nagyon jó lett. Ha csak hex-et kell égetni mindig azt használom.
pjg, djadji és sonajkniz: Köszönöm a segítséget, úgy tűnik sikerült megoldani.
Üdv, Attila |
Bejelentkezés
Hirdetés |