Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1310 / 1319
(#) Zoli_bácsi válasza pbalazs hozzászólására (») Dec 3, 2021 /
 
Itt volt a baj...

Teljesen jól megy, tapogatom, nem őrül meg a program. Nagyon köszönöm a tippet. Ment a like!
(#) pbalazs válasza Zoli_bácsi hozzászólására (») Dec 3, 2021 /
 
Egészségedre
(#) Zoli_bácsi hozzászólása Dec 3, 2021 /
 
Ez az LVP megviccelt a PIC16F628A esetén. Ha be van kapcsolva, akkor a korábban említett probléma jelentkezik, azonban ha kikapcsolom és úgy égetem be a flowcoddal, akkor "Memory Adress Error" hibát dob. Ha viszont a PICKIT2 saját programjával égetem be úgy, hogy manuálsan választom ki a PIC eszközt, akkor helyesen fut a program.

PIC16F873 esetén ha kikapcsolom az LVP-t és a flowcode-on belül égetem, akkor hibátlan.

Ideális beállításokat szeretnék valahol találni PIC-ekhez flowcodon belül. Leginkább a PIC16F628A, PIC16F873A, PIC16F877A.
A hozzászólás módosítva: Dec 3, 2021
(#) bbatka válasza Zoli_bácsi hozzászólására (») Dec 3, 2021 /
 
Korábban írtam már hogy konfiguráld kimenetnek az RB0-t. Vagy ha bemenet akkor ne hagyd lebegve.
(#) Zoli_bácsi válasza bbatka hozzászólására (») Dec 3, 2021 /
 
Már próbáltam, nem segített. Csak az LVP kikapcsolás segít, de a 628A esetén más programozó szoftver kell. A Flowcode nem hajlandó beégetni, ha az LVP ki van kapcsolva. Érdekes, mert a 873A-t meg gond nélkül megcsinálja.
(#) bbatka válasza Zoli_bácsi hozzászólására (») Dec 3, 2021 /
 
Én soha nem használtam az LVP-t. Valószínűleg ezért nem jelentkezett a probléma nálam. Abban teljesen biztos vagyok, hogy valamelyik láb bemenetként zavarjelet szed össze nálad. Szerintem égess PICKIT2-vel és hagyd az LVP-t. Úgy értem normál módban égetve. LVP kikapcsolva.
A hozzászólás módosítva: Dec 3, 2021
(#) Zoli_bácsi válasza bbatka hozzászólására (») Dec 3, 2021 /
 
Egyetértek. Ezt a metódust fogom használni. Flowcode-ot nemrég használok, ismerkedem a PIC konfigurációs ablakkal.
(#) spenyo hozzászólása Dec 30, 2021 /
 
Sziasztok,

Egy gyors kérdésem lenne.. Egy 16f684-es arra használok, hogy órajel generátor legyen egy másik PIC felé - a PIC PWM perifériáját használom, 50%-os fix kitöltéssel.
Azt hogy működik vagy sem úgy akarok ellenőrizni, hogy az előállított órajelet (65536Hz vagy 32768Hz .. átkapcsolható) rávezetem a PIC EXT_IT lábára és mérem az IT-k közötti időt.
Érdemes valamit tenni a két láb közé, vagy simán összeköthető a két láb - az egyik kimenet a másik bemenet tehát elvileg nem lehet baj - induláskor mindkettő bemenetkén áll fel, tehát itt sem lehet gond??
Van valakinek ilyen irányú tapasztalata?

Köszi a segítséget előre is...
(#) Josi777 válasza spenyo hozzászólására (») Dec 30, 2021 /
 
Ha mind a kettő azonos tápfeszültségre van kötve, akkor nincs szükség plusz alkatrészre, a két kivezetés közvetlenül összeköthető.
(#) spenyo hozzászólása Dec 30, 2021 /
 
Ezt nem értem ..?
Egy PIC-en belül akarom összekötni (RC5 lábat (PWM kimenet) az RA2 lábbal (External IT) direktbe) tehát milyen 2 tápfeszre gondolsz?
(#) kissi válasza spenyo hozzászólására (») Dec 30, 2021 / 1
 
Idézet:
„órajel generátor legyen egy másik PIC felé”
!?
Szerintem ebből adódott a félreértés...
A hozzászólás módosítva: Dec 30, 2021
(#) spenyo hozzászólása Dec 30, 2021 /
 
Aha..
Nem, a másik PIC felé nem gond, mert annak az órajel bemenetét fogom hajtani és ott nem gond.
Az egy PIC-en belüli visszacsatolást viszont még nem próbáltam és nem tudom mire számíthatok.
A két PIC különben közös tápfeszt kap, tehát ez a feltétel nem lenne gond....
(#) Hp41C válasza spenyo hozzászólására (») Dec 31, 2021 /
 
Össze lehet kötni a két lábat közvetlenül. Mivel minden láb bemenet (és analóg módban van) a reset után. A programban ügyelni kell nehogy a két lábat egyszerre állítsuk kimenetre.
Van néhány kivétel:
- Órajel lábak: más lábbal összekötve bizonytalan lehet az oszcillátor indulása.
- ICSP kivezetések: Más célra való felhasználásuk esetén a felprogramozásuk előtt néhány ms -ot várni kell - időt kell biztosítani a programozónak a kapcsolat felvételére.
- PDM láb: A mennyiben az alacsony feszültségű programozás engedélyezett, fix szintet kell adni a lábra.
- Van néhány modul, ami a felprogramozása után önállóan vezérli a hozzá tartozó lábat felülírva a TRIS regiszter által előírt módot.
A hozzászólás módosítva: Dec 31, 2021
(#) spenyo hozzászólása Jan 1, 2022 /
 
Köszi a tanácsot ... ki fogom próbálni..
De akkor már lenne még egy kérdésem. Van a Microchip-nek egy új kontrollere - 18F06Q41.
Imádom, mert csak 14 lábú, de van 3 külső megszakítás bemenete és létezik benne egy 16 bites PWM periféria a CCP modul PWM-jén kívül (a CCP PWM formációja csak 10bites ami nem igazán elég szervó vezérléshez a modellezésben).
Én a CCS C fejlesztőjét használom és nem találok benne segítséget vagy támogatást a különálló PWM periféria abajgatására, ami ráadásul szerintem egy fél híd kapcsolás, mert a PIC adatlapja szerint két kimenete van.
Van valakinek tapasztalata ennek a PWM-nek a besergetésére, mert nem igazán tudok elindulni vele.
A CCS .h file-ját átnéztem és elvileg vannak paraméterek a felprogramozáshoz, de pl. nincs infóm, hogy egy kimenetet lehet-e használni, vagy mindkettőnek ki kell kerülni a külső lábra ?
(#) majkimester válasza spenyo hozzászólására (») Jan 1, 2022 /
 
Ebben 3db duál kimenetű 16 bites PWM modul van, amit slice-nak hív az adatlap. Azaz 3 slice, mindegyik 2 kimenettel. A slice két kimenete csak együtt megy, nem lehet külön tiltani, de a 3 slice külön konfigurálható más más célra is, és tilthatóak is külön, azaz akár 1-et is használhatsz.

Ha a regiszterek definiálva vannak a CCS.h-ban akkor nincs más hátra, végig kell nyálazni az adatlap megfelelő fejezetét és a regisztereket a céljaidnak megfelelően beállítani. Milyen egyéb támogatást vársz? Valami varázslót, amin klikkelgetéssel bekonfigurálod?
(#) spenyo hozzászólása Jan 1, 2022 /
 
Igen.
A CCS C-nek igen jó a klikkelgetős beállítása ami a végén megírja a keretprogramot és ezzel nem kell foglalkozni.
Érdekes, hogy a 12F1752-hez megvan a külön PWM konfiguráló rész a programban, ehhez az újhoz meg nincs semmi...
(#) sdrlab hozzászólása Jan 31, 2022 /
 
Szeretnék 16 bites PIC-en saját megszakítást használni. Tehát én indítom, szoftveresen, meghatározott prioritással! Szerintetek van erre valami lehetőség?

Nézegettem az adatlapot, de nem igazán jött le, hogy ez megoldható e vagy sem?!
Jelenleg azt trükköztem ki, hogy egy nem használt hardveres megszakításra "telepedtem" rá, ami hardver eseményt nem használok per pillanat. Itt kézzel indítva a megszakítást jelző flaget, beesik a meghatározott prioritású megszakítás ahogy kell.
Ez így működik jól, de jobban örülnék neki, ha a sok, nem használt megszakítási vektorból tudnék erre a célra egyet elkülöníteni...
(#) helektro válasza sdrlab hozzászólására (») Jan 31, 2022 /
 
Szerintem nincs, bár soha nem próbáltam még ilyet. Amit én használok 16 bites PIC-et, azon csak a HW moduloknak (+ a hw és sw hibák, pl. stack error, stb.) van megszakítási hely az IVT-ben, szabadon beállítható sw-es helyet nem láttam. Szerintem csak az a megoldás működik, amit most is használsz.
(#) icserny válasza sdrlab hozzászólására (») Jan 31, 2022 /
 
Ha egy nem használt periféria megszakításkérő bitjét szoftveresen állítod be, akkor tudsz szoftveresen megszakítást indítani.
Bővebben: Link
(#) sdrlab válasza icserny hozzászólására (») Jan 31, 2022 /
 
Mintha pont ezt a megoldást írtam volna én is le feljebb....
(#) kissi válasza sdrlab hozzászólására (») Jan 31, 2022 /
 
Szia!

Nem használom, de úgy gondolom, hogy egy CALL mem_cím és RETFIE párossal mennie kellene (az elején letiltva a megszakítást a megfelelő ISR résznél!)...
(#) kissi válasza kissi hozzászólására (») Jan 31, 2022 /
 
Idézet:
„az elején letiltva a megszakítást a megfelelő ISR résznél!”
--> a CALL előtt letiltani a GIE-t és a RETFIE újra engedi...
(#) icserny válasza sdrlab hozzászólására (») Jan 31, 2022 /
 
Igen, és a Microchip fórumán (amit belinkeltem) csak annyi a plusz infó, hogy nincs is más...
Azt is írják, hogy csak a PIC32-nek van valódi szoftveres megszakításkérő lehetősége.
(#) sdrlab válasza icserny hozzászólására (») Jan 31, 2022 /
 
Hát ez szomorú...., de ez van
(#) sdrlab válasza kissi hozzászólására (») Jan 31, 2022 /
 
És a prioritást hogyan szabályoznád? Mert hogy az is fontos itt....
(#) kissi válasza sdrlab hozzászólására (») Jan 31, 2022 /
 
Ha szoftveresen akarod előidézni, akkor van ISR, amikor meghívod ( előtte, mint írtam, letiltod a megszakítást!), az ISR-ben meg ezt ellenőrzöd le először... Ha esetleg volt hardveres megszakítás, akkor közben úgy sem tudsz szoftverest előidézni...

szerk.: Nem ismerem a 16 biteseket, de azt írtad, hogy van sok megszakítási vektor...akkor arra a címre kell ugratni, amelyiket használni akarsz...
Melyik lenne a konkrét típus ?!
A hozzászólás módosítva: Jan 31, 2022
(#) sdrlab válasza kissi hozzászólására (») Jan 31, 2022 /
 
A háttérben fut egy magasabb prioritású megszakítás! Nem tilthatom ezt le.
Ez a segéd megszakítás csak azért kell, alacsonyabb prioritással, hogy azért ne a főprogramot terheljem ennek a kezelésével(azért ennek is meghatározott idő alatt kell bekövetkeznie, de itt nem kritikus, elég nagy jitter is belefér)... Amikor esemény van(azt a magas prioritású kezelőben állítom bizonyos feltételek alapján be), az a magas prioritás után fog értelemszerűen lefutni, de nem kell foglalkoznom tovább vele, mert az mindig szinkron fog zajlani a másikkal, alárendelt szerepben.
(#) sdrlab válasza kissi hozzászólására (») Feb 1, 2022 /
 
dsPIC33EV32GM002 - ez az áldozat )
A linker script file(gld) tele van előre definiált, de nem használt vektorokkal, ha jól láttam.... Ezért gondoltam, hátha valahogy ki lehet ezt használni...
(#) helektro válasza sdrlab hozzászólására (») Feb 1, 2022 /
 
Nem néztem meg a linker fájlt, meg ezt a típust nem ismerem, de szerintem 16 bites PIC-en csak hardvernek van megszakítás vektora.
(#) helektro válasza kissi hozzászólására (») Feb 1, 2022 /
 
A 16 bites megszakítása teljesen más, mint a 8 bites PIC-ek 2 szintű megszakítása. Ha nem ismered, akkor mielőtt leírsz olyan dolgokat, ami itt nem működik, lehet érdemes lenne utána nézni. A 16 bitesnél 8 megszakítási szint van, aminek a szintjét tetszőlegesen tudod engedélyezni. Attól függően, hogy milyen szintű a generált megszakítás, ill. milyen szint van engedélyezve, simán előfordulhat, hogy egy "szoftveres" megszakítás magasabb szintű lesz, mint egy hardveres. Ilyen alapból is van benne amúgy, pl. egy incorrect address megszakítás szoftveres, mégis magasabb szintű, mint egy hardveres megszakítás.
Következő: »»   1310 / 1319
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