Fórum témák
» Több friss téma |
Szerintem nem szerencsés delay-t belerakni a megszakításba, főleg úgy, hogy a főprogramhurokban is van. A delay_ms nem hivogatja esetleg a delay_us -t ? Ha igen, akkor a megszakításban levő kicsit megzavarja a főprogram időzítését, esetlegesen végtelenné is teheti.
Csak azért raktam bele, hogy legyen benne valami. Kivettem, de a reset nem szűnt meg.
A megszakítás kiszolgáló függvény miért extern?
Passz, ezt nem tudom. De nem befolyásolja a hibát.
No a helyzet a következő.
Annyira rájöttem, hogy valszeg a PWM és a Timer2 megszakításával van gond. Lemaradt a megosztott kódból a PWM beállítás. Tehát PWM timer2-vel be van állítva, és timer2 megszakításában kellene pár dolgot csinálnom. Valahol itt lehet a hiba, vagy egyszerűen nem használhatom timer2-t megszakításban, ha azt már PWM használja.
Ezért kell az adatlapot átnézni. Ezekben a 16F típusoknál a pwm alapja a timer2, tehát másra nem használható ilyenkor.
Miért nem?
Igaz, hogy 16-al még nem dolgoztam, de 10F322-nél, 12F1840-nél és 18F14K22-nél is használtam már timer 2-őt megszakítás kiváltására miközben PWM-et működtetett, mégpedig nem is a PWM frekvenciáján, hanem egy alacsonyabb frekvencián utóosztóval. A flag bit akkor is bebillen, ha PWM-et futtat.
Ha ez így van, (mert úgy tűnik, bár mondjuk erre én utalást nem találtam az adatlapban), akkor hogy tudnám ugyan ezt a PWM jelet amit generál mérni a saját ADC-éjével felfutó élre?
Hogy tudom szinkronba hozni mondjuk egy másik timer-el, ami mondjuk indítaná a mérést? Van esetleg ötleted? Még arra is gondoltam, hogy PWM megszakítását beállítom, de valamiért az sem működik. pl: A hozzászólás módosítva: Szept 1, 2018
Idézet: Segítünk. DS41202C-page 75 jobb oldal fent első táblázat. „erre én utalást nem találtam az adatlapban”
Na ezt nem nagyon értem. A timer2 beállításai alapvetően befolyásolják a pwm jel milyenségét. Az rendben van, hogy kiváltja a megszakítást ha az engedélyezett, de közben belenyúlsz a timer2 beállításaiba az tuti befolyásolja a pwm jelet is.
Ha az előosztót állítgatod, akkor igen. De az utóosztó az (én tapasztalataim alapján) nincs befolyással a PWM frekvenciájára, mivel az utóosztó timer2 lefutását nem állítja, csak a flag bit kapcsolását.
A hozzászólás módosítva: Szept 2, 2018
Lehet hogy így van, régen foglalkoztam ezzel a témával. Szkóppal is ellenőrizted?
Ha megnézed az adatlapon, látszik, hogy az utóosztó csak a flag bebillentésére van hatással, a TMR2-re nincs.
Ha időzíteni szeretnéd az AD-t, az csak "Compare mode, trigger special event" módban megy, PWM esetén szoftverból kell indítanod.
75. oldalon ez van: "Reading the EEPROM Data
Memory" Miben segít ez nekem?
A lapszámozás szerinti 75. oldalt nézd!
Table 11-1.
Ohh, köszi így már ok, ezt a táblázatot már én is nézegettem és próbáltam értelmezni is a leírtakat, de ez nem == azzal, hogy kizárólag csak a PWM-re lehetne használni timer2-őt és ne lehetne a megszakítást használni. Bár mondjuk élesben, ha használom a megszakítást akkor egyértelműen nem működik a PIC. (reset hurokba kerül)
Van mód arra, hogy tudjam mérni a PWM jelet amit generálok ADC-vel? Persze szinkronba felfutó élre. (maradva ezen a PIC-en, 16F684)
Pontosabban mit szeretnél mérni a PWM jelen? A felfutó él után kb. a táp van rajta.
+-12v-om lesz rajta, és annak az amplitúdó modulációját akarom mérni.
1KHz-es PWM-et állítok be, majd különböző ellenállással fogom ezt a PWM jelet földre húzni. A feszültség esést akarom mérni.
Ahogy sonajkniz írta, szoftverből kell indítani. Ez okoz egy kis késleltetést, és a PWM jelednek is magasnak kellene maradnia, amíg a mérés tart.
Majd idővel hozzászoksz az MC doksijaihoz, és észreveszed, hogy a dokumentumoknak egyedi számozása van, és azon belül a lapokat is külön számozzák. Egy ilyenből: "DS41202C-page 75" illik tudni önállóan felkutatni az adott dokumentumot interneten és annak a célzott lapját is megtalálni.
Idézet: Az ott azt mondja, hogy "TIMER RESOURCES REQUIRED". Ha az ECCP-t nem használod, vagy nem PWM üzemben használod, azt csinálsz a timer 2-vel, amit csak akarsz. Viszont ha PWM-et használsz, tilos érintened a timer 2-t. Még akkor is, ha a gyakorlatban lehet éppen trükközni 1-2 dolgot megcsinálni vele. Azok nem támogatott trükközések. Nyugodtan számíthatsz rá, hogy akár a következő hardver revízióban amiatt működésképtelenné válhat a programod. Ha az megtörténik, nem lesz jogos sírnod érte.„ez nem == azzal, hogy kizárólag csak a PWM-re lehetne használni timer2-őt” Hobbi célra 1 alkalomra persze csinálsz, amit csak jól esik.
Értem, köszi a kiegészítést.
Szoftveresen elég nehéz lesz jól beállítani a szinkront. Sokat téveszt.
Szia!
Egy másik lábbal összekötve nem tudsz arra megszakítást tenni ( INT ) ?!
Arra gondolsz, hogy állítsak be egy külső megszakítást és vezessem bele a PWM jelet?
Majd a megszakításban indítsam az ADC-t?
Igen, ha a belső a kollégák szerint nem jó...
Nekem jól működött a TMR2 megszakítás PWM módban. Nem jelezte itt senki más, hogy neki sem működik. Ha a TMR megszakításban szerinted nehéz jól beállítani a szinkront, bármely másikból mitől fog kevesebbet téveszteni?
Nekem valamiért reseteli a PIC-et folyamatosan, ha timer2-őt megszakítással is terhelem.
A PWM visszavezetése jó ötletnek tűnt, de mivel alacsony a feszültség az 1KHz-es jel miatt, nem okoz megszakítást. Szóval ez sem járható út, vagy még elnézek valamit. Egyelőre önmagában tesztelem, tehát egy az egyben a PWM jelet vissza vezetem külső megszakításra, de olyan alacsony a feszültség, hogy nem okoz megszakítást. Lehet ez a PIC már ezt az összetett feladatott nem tudja normálisan kiszolgálni. Bíztam benne, hogy meg tudom oldani vele, de lehet váltanom kell.
Próbád ki PWM nélkül megy-e a TMR megszakítás, lehet más lesz a probléma.
Idézet: „A PWM visszavezetése jó ötletnek tűnt, de mivel alacsony a feszültség az 1KHz-es jel miatt, nem okoz megszakítást.” Itt valami nem stimmel: a proci a PWM kimenetén olyan jelet kell, hogy kiadjon ,amit ő '1'-nek és '0'-nak gondol, nem lehet, hogy alacsony a feszültség és nem okoz megszakítást ( illetve ha igen, akkor valami nem jó! ) !!
Valami kapcsolási rajz lenne jó, hogy közelebbi képet kapjunk róla, mit nevezel te "alacsony feszültség"-nek, ugyanis a pwm kimeneten impulzus üzemben táp közeli (vdd / gnd) jelszintek vannak normál esetben. Persze nagy áram terheléstől le tud csökkenni a kapocsfesz, de arra az esetre használhatsz mondjuk egy külső műveleti erősítőt, ha nem túl nagy teher +1 tokot feldobni a panelra.
És persze igen, lehet váltani nagyobb teljesítményű típusra is, ha mindenestül elérted a korlátokat. A kicsi teljesítményű pic-ek nem olyasmik, hogy különösebb fejlesztési tartalékra számíthatsz. Jobb azokat olyankor használni, amikor valami kiforrott dologhoz épp csak egy picike digitális intelligencia kell, ami tuti biztos "belefér" egy pici pic-be is, és az lenne a fontos, hogy mindazt olcsón kapd meg. Akkor jól jönnek a pic10/12/16-osok. Általános célra fejlesztési tartalékot kínálni szerintem a 32mx-ek még elég olcsóak, elég kiforrottak, és elég nagy teljesítményűek. A magam részéről azokat javaslom hobby-kísérletező célra. |
Bejelentkezés
Hirdetés |