Fórum témák
» Több friss téma |
Úgy tűnik ezzel működik:
PROCESSOR 18F25K50 #include <xc.inc> goto start ledRedOn: bcf TRISC,6 return ledRedOff: bsf TRISC, 6 return start: bcf LATC, 6 ; Set up the red LED ; Enable Timer 0 as a 16-bit timer with 1:256 prescaler: ; since the instruction speed is 12 MHz, this overflows about ; every 1.4 seconds. movlw 10000111B movwf T0CON mainLoop: movf TMR0L, W ; Trigger an update of TMR0H ; Blink the red LED with a period of 1.4 s. btfss TMR0H, 7 rcall ledRedOff btfsc TMR0H, 7 rcall ledRedOn goto mainLoop end
Nekem az első változat is lefordult hiba nélkül.
MPLAB X IDE V6.15 -öt
MPLAB XC8 C Compiler v2.45 használtad ? Tudnál egyképet felrakni?
Nem én még a régi MPLAB IDE v8.92-öt szoktam használni, ha nagy ritkán foglalkozom vele. De egy assembly kódhoz miért használsz XC8 fordítót?
Mert PIC18F16Q40-et kell progiznom és a MPLAB IDE v8.92 nem ismeri
Sziasztok!
Működik a rendszer, de van azért hibája. Előfordul, hogy be se lép a while(1) részbe, csak esetenként a második bekapcsolásra. Van úgy, hogy megáll (lefagy) a 400ms késleltetés után és nem folytatódik a végtelen ciklus.
1-es láb (MCLR) felhúzva tápfeszültségre? Az előző oldalon lévő beállítások alapján azon a lábon a Reset funkció van használva, a mostani képen meg éppen nem látszik a kontroller teljesen.
Az 1-es láb 10K-val tápfeszre csatlakozik.
A programban nincs semmi, ami meg tudná gátolni, hogy eljusson a while(1) részig. Gyaníthatóan nem jó a 10 kΩ felhúzás érintkezése. A teszt idejére a konfigurációban kapcsold át az MCLR funciót belsőre. Esetleg a tápfeszültség ingadozása folyamatosan újraindítja a kontrollert de ez szemmel nem látható csak annyi, hogy áll a program valahol. 100 nF-os kondenzátorok vannak a táplábak közelében (közvetlen a táplábak mellett)?
Hogyan vannak beállítva a konfigurációs bitek? A Watchdog le van tiltva?
MpLabX IPE programjával lehet programozni.
Azok a kondenzátorok a tápfeszültségen vannak, nem közvetlen a kontroller táplábain. Nem egyenértékű a kettő. a másik oldalon is legyen 100 nF. Azt látom, hogy az 1-es láb felhúzva, de megy onnan valahova egy vezeték. Az mit csinál?
MCLR vagy tápfeszültséget továbbra is gyanusítom, de inkább az utóbbit. Mi szolgáltatja az 5 V-ot?
Most mind a két oldalon közvetlenül a lábak előtti csatlakozón vannak a kondik. Az 1-es lábról a vezeték a Vpp. A tápfeszt egy stab táp adja.
Az LCD könyvtár hogyan kezeli az LCD-t? Várakozással vagy a Busy flag kiolvasásával?
Ha az olvasás nem sikerül valamiért, azaz a Busy flag értéke minig 1, összejöhet a végtelen várakozás.
A hibát az okozza, hogyha nem jó szögben érkezik visszavert jel, akkor elindul ugyan a várakozás, de már ha jó is az irány, egy végtelen várakozásba fullad a folyamat.
Nemrég azt írtad, néha el sem jut a while(1) részig a program. Vizsgáld pl. a TMR1H értékét is. Ha elérte a 255-öt lépj ki a ciklusból, így nem ragad bele a while(PORTB.F4); részbe. Ha jól számolom, már 93 esetén is "out of range" üzenet lesz a kijelzőn. Ha csak 93-ig várakozol, gyorsabban véget ér a hiábavalóság.
Valóban azt írtam, mert akkor nem vizsgáltam meg analizátorral és a jelenség olyan volt mintha ott fagyott volna le. De most látható minden, a hiba oka is. Igen én is ezt számoltam.
A hozzászólás módosítva: Dec 30, 2023
Valahogy így:
A hozzászólás módosítva: Dec 30, 2023
Én egy kicsit másképp oldottam meg és így most működik.
Köszönöm a segítséget! A hozzászólás módosítva: Dec 30, 2023
Én így csináltam:
Nem az MPLAB verziója volt a kérdés, hanem a fordító...
BÚÉK!
Szeretnék egy fordulatszám szabályzót készíteni. A motorok amihez használni szeretném 230V-os feszültségről működő, néhány watt (jellenzően 10W alatti) telejsítményűek. Itt a cikkek között találtam egy kapcsolát ami fényerő szabályzásra készítettek. A kérdésem az lenne, hogy ezt ebben a formában fel tudom használni vagy kellene változtatni rajta (az IR részére nincs szükségem)?
Akár jó is lehet. Milyen motorról van szó?
Nem nagyon vagyok jártas a motorok világában így nem tudom pontosan hogyan nevezik ezt a típust. Akváriumba való pumpa, az elektromos része teljesen ki van öntve gyantával, a forgó része egy hengeres mágnes.
A hozzászólás módosítva: Jan 1, 2024
Azzal sehogy nem lesz jó. Az egy szinkron motor, a fordulatszámot a frekvencia adja. Gondolom lassítani szeretnél rajta. Ha igen, akkor egy bypass ággal (szívó- és nyomóágat összekötöd egy csővel, amelyen van szabályzó csap/szelep) tudod megoldani, akár elektronika nélkül is.
A mechanikus szabályozás itt nem játszik, de köszönöm. Kutakodok tovább.
Akkor egy opciód marad, kis frekvenciaváltót készítesz. Már csak azt kell eldönteni, megéri-e vagy nem.
Én is erre jutottam. Valószínüleg nem éri meg, de azért körbejárom a témát.
|
Bejelentkezés
Hirdetés |