Fórum témák
- • Vásárlás, hol kapható?
- • Kapcsolási rajzot keresek
- • Felajánlás, azaz ingyen elvihető
- • Klíma szervizelés, javítás
- • Elektromos kerékpár, robogó házilag
- • Számítógép hiba, de mi a probléma?
- • Rádió építés a kezdetektől a világvevőig
- • Westen 240 Fi gázkazán hiba
- • Kondenzátor feltöltés
- • Mikrohullámú sütő javítás, magnetron csere, stb.
- • VF3 - 6 végerősítő
- • Villanypásztor
- • Mosógép vezérlők és általános problémáik
- • Villanymotor
- • Quad 405-ös erősítő tapasztalatok és hibák
- • LM1875, LM3875, LM3886, stb. TI végerősítők
- • Villanyszerelés
- • Folyamatábrás mikrokontroller programozás Flowcode-dal
- • RFID Miértek és hogyanok
- • Li-Po - Li-ion akkumulátor és töltője
- • Audiofil, High End Audio
- • Alternativ HE találkozó(k)
- • PLC alapismeretek
- • PIC - Miértek, hogyanok haladóknak
- • Páratartalom érzékelő
- • Gitár Pickup
- • Kondenzátor
- • Inverteres hegesztőtrafó
- • Erősítő mindig és mindig
- • TV hiba, mi a megoldás?
- • Elektromos fűnyíró probléma
- • Li-Ion saját akkucsomag készítése
- • Ki hol gyártatja a NYÁK-ot ?
- • Flip-Flop? Bistabil? Buffer?
- • Egyfázisú motor forgásirány váltása mágneskapcsolóval
- • Indukciós főzőlap javítása
- • Espressif mikrokontrollerek
- • Hörmann kapuk
- • Műveleti erősítő
- • Kombikazán működési hiba
- • Codefon kaputelefon
- • Autóelektronika
- • Porszívó javítás
- • Rádióamatőrök topikja
- • Muzeális készülékek-alkatrészek restaurálása
- • Analóg oszcilloszkóp javítása
- • Elektromos távirányítós kapunyitó
- • Érdekességek
- • Sütő javítás
- • DVB-T - Földfelszíni digitális problémák
- • Frekvencia - feszültség átalakító
- • Mosogatógép hiba
- • Hangsugárzó építés, javítás - miértek, hogyanok
- • Oszcilloszkóp, avagy hogyan kell használni?
- • Tápegységgel kapcsolatos kérdések
» Több friss téma
|
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
A pk2 működik Windows 10 alatt, még driver sem kell mert hid eszköz. Nem lehet hogy a kábel vagy maga a pk2 hibás? Csatlakoztatáskor hallod a szokásos Windows hangot amit új hardver felismerésekor szokott adni? Közben látom hogy igen. Akkor nincs más ötletem... A hozzászólás módosítva: Dec 23, 2020
Ebben a módban nem törli a CCP a TMR-t. Az a 0001-es mód.
PICkit2 V2.62:
- 32 bites program.
- USB HID eszköz, nem kell külön driver, a HID drivert tartalmazza az operációs rendszer.
- A PICkit2.ini állomány elérésével lehet gond, ugyanis ezt az állományt a telepítési mappában keresi illetve módosítja a program.
- Próbáld meg "run as administrator" modszerrel. A hozzászólás módosítva: Dec 23, 2020
Értem, köszi. Kipróbáltam mindenfélét amit írtál, de ha nincs ott az Isr() -ben amit kikommenteltem, akkor nem csinál semmit. Amúgy ha az bent van, működik.
cnt++;
if(cnt == 50){
LATCbits.LATC2 = ~PORTCbits.RC2;
cnt = 0;
}
De ezzel csak a megszakítással váltogatom "szoftveresen" a kimenetet.
De ha így állítom be:
CCP1CONbits.MODE = 0b0010; // CCP1 Compare mód beállítása "Toggle output" váltogatja a kimenetet
akkor hardveresen kellene váltogatnia a kimenetet. Nem? Lehet nem jól tudom, csak gondolom.
Igen, ez volt az első amit kipróbáltam, de sajna így sem jó.
Az init_base részt egészítsd ki ezzel: Hátha.
A témában azt írja valaki, hogy a kimenetek nincsenek lábakhoz rendelve, azt neked kell megtenned.
Jó lett, köszi 
Már nem kell a
LATCbits.LATC2 = ~PORTCbits.RC2;
és megy rendesen. De még erre is szükség volt:
CCP1CONbits.MODE = 0b0001; Toggle output; clear TMR1
Kicsit még bogarászok vele, de mértem az idejét és eddig úgy néz ki pontos.
Remek! Ha van időd, nézd meg légyszíves, hogy mi a különbség a Pulse output (0b1011) és a Toggle output (0b0001) között.
Ez vagy nincs az adatlapban vagy nem találom, de érdekel.
Hát, nem is tudom. Az adatlapon sokmindent nem találtam róla de elvileg valami olyasmi lehet hogy a kimenetet nem változtatja meg de valami belső eseményt elindít. Ez a Pulse output; clear TMR1 és van megszakításkérés is. A sima Pulse output; meg nem csinál semmit csak megszakításkérést generál "szerintem".
De leteszteltem, tényleg nem csinál semmit. Szerintem amikor eléri az egyenlőséget megszakítást generál de a timer végig fut. Nem biztos, csak próbálom összelegózni az infókat.
Jaa, a Toggle output meg folyamatosan váltogatja a kimeneti jelszintet amikor a timer eléri a komparálási értéket.
Ez így tök jó lett, működik  ...és persze törli is rögtön és újraindul. Ezért mondtam hogy a Tmr1 soha nem fog megszakítást okozni mert soha nem fog végig futni. A hozzászólás módosítva: Dec 23, 2020
Közben az este sikerült levadásznom egy oldalt,onnan leszedtem ,nem is kellett telepíteni,ezzel tökéletes!,vagyis felismeri,majd most kiderül az égetésnél.
Adatlap szerint:
Idézet: „The pulse output goes high at the rising edge of the timer clock where the CCP match occurs and lasts until the rising edge of the next timer clock. The pulse output also goes low if the timer is written to before the second clock edge occurs.”
Mi a különbség a PC-s és a PIC-es assemblyben? Csak a proci architektúrája, vagy az utasításkészlet vagy van még valami más is?
Szinte ég a föld a kettő. A PIC-ed 75 + 8 utasítást ismer. A Raspberry Pi 4-ben lévő CPU utasításkészletének egy részét megtalálod itt: A64 Instruction Set Reference (kb. 800 utasítás van ott leírva, ha jól számolom).
Ez a kettő nem elég?
A PC Neumann architektúra (azonos a program, és az adattároló), a program a BIOS kivételével változtatható, míg egy PIC Harvard alapú (külön program, és külön adatmemória).
Az újabb PIC kontrollerek már tartalmazzák az adatmemóriában levő program végrehajtásának lehetőségét, ezzel erre a platformra is sikerül átvinni rosszindulatú kódok, mint például vírusok megjelenését.
Néha elgondolkodok azon, hogy ez szándékos, vagy csak simán átgondolatlan hozzáállás?
Értem, köszönöm.
Bakman: köszi neked is. Tehát ha jól értem, akkor két különböző nyelvről van szó?
Ha mondjuk most szeretnék elkezdeni Assembly-ben programozni tanulni akkor a PC-s assembly az felejtős?
Kimondottam PIC-re való assembly-t kell tanulni?
Nem, nem erről van szó. Alapvetően különbözben a CPU-k és MCU-k. Ha assembly-t akarsz tanulni, kezd egy egyszerűbb mikrokontroller családdal, aztán majd meglátod, kelle-e ez neked. Idővel ki fog derülni, hogy megéri-e vele foglalkoznod vagy sem.
Kezdj PIC-kel. Àtlátható az utasításkészlete és az architektúrája. Valamint nem vagy függőségben más rendszerelemektől.
Az assembly processzorfüggő, olyan, mintha azt kérdezném tudsz-e vezetni. Igen?
Biciklit? Autót? Tankot? Buszt? Lépegető exkavátort? Űrhajót?
Kezdj biciklivel. Elsőre az sem egyszerű.
Egyébként a PIC-re a fejlesztő csomag része egy szimulátor ( látod, ha tekersz a bicikli kormányán, mit csinál a kerék)
És, ha kész vagy, könnyű -és költséghatékony - áttenni a valóságba.
Rendben, értem, köszi. Sajnos kevés a doksi és a könyv amiből normálisan lehetne tanulni.
Köszönöm neked is Bakman és
Boldog Karácsonyt Mindenkinek!!!
Csak az elmélet érdekel, vagy ki is próbálnád?
A PIC-nél érdemes egy adott típusra koncentrálni, én a PIC16f628A-val kezdtem.Ebben elég sok minden van, de jól kezelhető Assembly-ben.
Az adatlapjára mindenképpen szükséged lesz (Microchip.com)
Az interneten "PIC programozás"-ra keresve nagyon sok találat van, pl. innen a Hobbielektronikáról is. De a 2008-es Rádiótechnika évkönyvben is volt egy hosszú leírás.
Kipróbálni az MPLAB IDE környezettel lehet (szintén Microchip.com), az újat nehéz megszokni (én a 64 bites MAC miatt rá vagyok szorulva) de a régebbiek könnyebben kezelhető voltak. Ha neked nem kell 64 bites applikáció, akkor itt a fórumon biztosan tudnak egy korábbi verziót javasolni.
És Neked is boldog karácsonyt.
Köszi. Természetesen a gyakorlat a cél, de az elmélet mindennek az alapja.
Pont van itthon egy 16f628A PIC-em. Még régebben vettem mint első PIC-et, de mire oda került a sor hogy programozzak másra esett a választás. De ha azt mondod hogy ez jó kezdésnek akkor beüzemelem.
Az MPLAB -ot ismerem "nagyjából" a debuger még döcögős, de már használom egy ideje. Eddig C-ben tanultam progizni PIC-re, de szeretnék áttérni Assembly-re.
Linuxot használok így sajna nem tudok régebbi MPLAB-ot felrakni, de az MPLABX -ben is van valami asm fordító az XC8 mellett. Ezzel még kísérletezek, (nincs tapasztalatom) de felraktam egy virtuálbox-ot, arra meg feltolok egy win-t aztán leszedek egy normál MPLAB verziót. Melyiket ajánlanátok??? (ami tényleg normálisan használható asm-re)
Ha MAC -ed van, szerintem egy virtuális gépre felküldhetsz Te is egy régebbi verziót attól függetlenül hogy 64 bites a rendszered. A hozzászólás módosítva: Dec 24, 2020
Sziasztok!
Egy érthetetlen hibáról, és annak még érthetetlenebb megoldásáról szeretném a véleményeteket kérni.
Adott egy PIC18F14K22-es kontroller.
Bemenetnek címzett lábak: RA2, RA3, RB4, RB5, RB6 ,RB7, RC0, RC2, (ez analóg) RC6, RC7.
RC4, RC5 PWM kimenetek. Minden más digitális kimenet. RB4,5,6,7 valamint RC0,6,7 2,2K-val van pozitívra húzva és optocsatoló húzza le negatívra. RA2 csak a belső felhúzó ellenállással van felhúzva, mivel csupán egy helyi nyomógomb van rajta.
A hiba az volt, hogy ahányszor csak jelet kapott RB4, annyiszor reszetelődött a PIC, Vagy legalábbis beugrott az inicializációs rutinba.
Átnéztem az adatlapot, és minden olyan lehetőséget letiltottam a digitális bemeneten kívül, amire RB4 hatással lehet. A hiba maradt. Kicseréltem a PIC-et. Helyzet változatlan. Fél napos eredménytelen kísérletezés után kínomban RA2-őt 500 ohmmal felhúztam pozitívra amitől a hiba megszűnt.
A dolog külön érdekessége, hogy a hibát folyamatosan tudta produkálni olyankor is amikor a program sem RB4-et, sem RA2-őt nem figyelte. Ráadásul egyik bemenet funkciója sem tett ilyesmit lehetővé.
Ha valaki találkozott már ilyen hibával, és esetleg azt is tudja, mi okozza, kérem ossza meg velem.
Program, kapcsolási rajz és NYÁK terv nélkül csak egy határozott talánnal lehet válaszolni. Sok ilyen kontrollert (kizárólag tiszta forrásból) felhasználtam már, soha, még csak hasonló hibát sem tapasztaltam. Volt, aki távolkeleti beszerzésűnél panaszkodott érthetetlen hibákara.
Magam részéről az összes eddig használt PIC18-ast a chipkad-tól vásároltam, és sajnos volt már olyan, hogy egyszerre vásárolt 5db PIC18F14K22-esben a RAM egyik byte-ja hibás volt.
Feltettem egy képet a paneltervről és a szerelt panelról is.
Én nem láttam rajta hibát.
Mellékelem a programot is.
;*******************************************************************************
;* Hungarocell vágó célgép *
;*******************************************************************************
INCLUDE <P18F14K22.INC> ;includde fájlok megadása
RADIX hex ;alapértelmezet számrendszer megadása
CONFIG FOSC = IRC ;bels? oszcillátor
CONFIG WDTEN = OFF ;watchdog kikapcsolása
CONFIG LVP = OFF ;alacsony feszültség? programozás kikapcsolva
CONFIG MCLRE = OFF ;RA3 bemenetkénti használatra állítása
CBLOCK 0x0001
ADATBYTE
CIKLUS1
PWM_1
PWM_2
PWM_3
MOZGAS
WAIT
ENDC
#define PWM_VONAL LATC,1
#define STOP PORTA,2
#define P_D LATC,0
#define POWER PORTC,2
#define M1_HATRA LATC,3
#define M2_HATRA LATA,4
#define LS_1 PORTC,7
#define LS_2 PORTC,6
#define LS_3 PORTB,7
#define LS_4 PORTB,6
#define LS_5 PORTB,4
#define LS_6 PORTB,5
org 0x0028 ; program memória kezd? címe
nop
INICIALIZALAS
CLRF LATA ; kimeneti portok törlése
CLRF LATB
CLRF LATC
MOVLW B'01000000'
MOVWF ANSEL
CLRF ANSELH
MOVLW B'00011001'
MOVWF ADCON0
MOVLW B'00100101'
MOVWF ADCON2
MOVLW B'00001100' ; A port
MOVWF TRISA
MOVWF WPUA
MOVLW B'11110000' ; B port bemenet
MOVWF TRISB
MOVLW B'11000101' ; C port kimenet
MOVWF TRISC
MOVLW B'01110000' ; oszcillátor frekvenciája <4:6>
MOVWF OSCCON ; 111 = 16, 110 = 8, 101 = 4, 100 = 2 MHz
CLRF INTCON
CLRF PIE1
CLRF IOCB
MOVLW B'00000001'
MOVWF T1CON
MOVLW B'00000101'
MOVWF T2CON ;Timer 2 beállítása 16-os el?osztásra
MOVLW B'00001101'
MOVWF CCP1CON
CLRF PSTRCON
MOVLW .254
MOVWF PR2
MOVLW .127
MOVWF CCPR1L
;-------------------------------------------------------------------------------
MAIN
BTFSC LS_6
GOTO $-2
BTFSC LS_1
GOTO ALAPHELYZET
BTFSC LS_4
GOTO ALAPHELYZET
BTFSS P_D
GOTO PROGRAM
;------------------------------------Darabolás----------------------------------
DARABOLAS
MOVLW .250 ;F?tési érték megadása
MOVWF PWM_1
MOVWF PWM_2
MOVWF PWM_3
CALL PWM_VEZERLO ;F?t?szálak bekapcsolása
MOVLW .200
CALL VARAKOZAS ;Felf?tésre várakozás
;----------------------------
MOVLW .170 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BCF MOZGAS,1 ;Irány megadása
CALL LE_FEL
BTFSS LS_3 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál felfelé mozog végállásig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL LE_FEL ;Mozgás megállítása
MOVLW .50
CALL VARAKOZAS ;Kivárás
;----------------------------
MOVLW .180 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BSF MOZGAS,1 ;Irány megadása
CALL LE_FEL
BTFSS LS_1 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál lefelé mozog végállásig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL LE_FEL ;Mozgás megállítása
MOVLW .100
CALL VARAKOZAS ;Kivárás
CLRF PWM_1
CLRF PWM_2
CLRF PWM_3
CALL PWM_VEZERLO ;F?t?szálak kikapcsolása
GOTO MAIN
;-------------------------------M?ködtetés programból---------------------------
PROGRAM
MOVLW .250 ;F?tési érték megadása
MOVWF PWM_1
MOVWF PWM_2
MOVWF PWM_3
CALL PWM_VEZERLO ;F?t?szálak bekapcsolása
MOVLW .200
CALL VARAKOZAS ;Felf?tésre várakozás
;----------------------------
MOVLW .170 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BCF MOZGAS,1 ;Irány megadása
CALL LE_FEL
BTFSS LS_2 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál felfelé mozog félútig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL LE_FEL ;Mozgás megállítása
MOVLW .100
CALL VARAKOZAS ;Kivárás
;----------------------------
MOVLW .180 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BCF MOZGAS,1 ;Irány megadása
CALL OLDALRA
BTFSS LS_5 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál el?re mozog végállásig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL OLDALRA ;Mozgás megállítása
MOVLW .100
CALL VARAKOZAS ;Kivárás
;----------------------------
MOVLW .210 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BSF MOZGAS,1 ;Irány megadása
CALL OLDALRA
BTFSS LS_4 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál hátra mozog végállásig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL OLDALRA ;Mozgás megállítása
MOVLW .100
CALL VARAKOZAS ;Kivárás
;----------------------------
MOVLW .180 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BCF MOZGAS,1 ;Irány megadása
CALL LE_FEL
BTFSS LS_3 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál felfelé mozog végállásig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL LE_FEL ;Mozgás megállítása
MOVLW .50
CALL VARAKOZAS ;Kivárás
;----------------------------
MOVLW .180 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BSF MOZGAS,1 ;Irány megadása
CALL LE_FEL
BTFSS LS_1 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál lefelé mozog végállásig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL LE_FEL ;Mozgás megállítása
MOVLW .100
CALL VARAKOZAS ;Kivárás
CLRF PWM_1
CLRF PWM_2
CLRF PWM_3
CALL PWM_VEZERLO ;F?t?szálak kikapcsolása
GOTO MAIN
;-------------------------------------------------------------------------------
ALAPHELYZET
MOVLW .250 ;F?tési érték megadása
MOVWF PWM_1
MOVWF PWM_2
MOVWF PWM_3
CALL PWM_VEZERLO ;F?t?szálak bekapcsolása
MOVLW .200
CALL VARAKOZAS ;Felf?tésre várakozás
;----------------------------
BTFSS LS_4
GOTO LEFELE
MOVLW .180 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BSF MOZGAS,1 ;Irány megadása
CALL OLDALRA
BTFSS LS_4 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál hátra mozog végállásig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL OLDALRA ;Mozgás megállítása
MOVLW .100
CALL VARAKOZAS ;Kivárás
;----------------------------
LEFELE
MOVLW .180 ;Mozgási sebesség meghatározása
MOVWF MOZGAS
BSF MOZGAS,0 ;Mozgás indítása
BSF MOZGAS,1 ;Irány megadása
CALL LE_FEL
BTFSS LS_1 ;Várakozás a végálláskapcsoló jelére
GOTO $+.12
BTFSS STOP ;*******************************************
GOTO LEALLITAS ;* F?t?szál lefelé mozog végállásig *
GOTO $-.12 ;*******************************************
CLRF MOZGAS
CALL LE_FEL ;Mozgás megállítása
MOVLW .100
CALL VARAKOZAS ;Kivárás
CLRF PWM_1
CLRF PWM_2
CLRF PWM_3
CALL PWM_VEZERLO ;F?t?szálak kikapcsolása
GOTO MAIN
;-------------------------------------------------------------------------------
LEALLITAS
POP
CLRF MOZGAS
CALL OLDALRA ;Mozgás megállítása
CLRF MOZGAS
CALL LE_FEL
CLRF PWM_1
CLRF PWM_2
CLRF PWM_3
CALL PWM_VEZERLO ;F?t?szálak kikapcsolása
GOTO MAIN
;-------------------------------------------------------------------------------
VARAKOZAS
MOVWF WAIT
KIVARAS
MOVLW 0x63
MOVWF TMR1H
MOVLW 0xC5
MOVWF TMR1L
BCF PIR1,0
NOP
BTFSC PIR1,0
GOTO $+.12
BTFSS STOP
GOTO LEALLITAS
GOTO $-.12
DECFSZ WAIT
GOTO KIVARAS
RETURN
;---------------------------Oldalmozgató motor meghajtás------------------------
OLDALRA
BTFSC MOZGAS,0
GOTO OLDALRA_1
BCF PSTRCON,STRB
MOVLW .254
MOVWF PR2
MOVLW .127
MOVWF CCPR1L
RETURN
OLDALRA_1
BTFSC PSTRCON,STRB
RETURN
BCF M1_HATRA
BTFSC MOZGAS,1
BSF M1_HATRA
BCF MOZGAS,0
BCF MOZGAS,1
MOVLW .221
CPFSLT MOZGAS
MOVWF MOZGAS
MOVLW .255
XORWF MOZGAS
BSF PSTRCON,STRB
GYORSIT_1
DECF CCPR1L
DECF PR2
DECF PR2
MOVF PR2,W
NOP
NOP
NOP
CPFSLT MOZGAS
RETURN
GOTO GYORSIT_1
;------------------------------Emel?motor meghajtás-----------------------------
LE_FEL
BTFSC MOZGAS,0
GOTO LE_FEL_1
BCF PSTRCON,STRA
MOVLW .254
MOVWF PR2
MOVLW .127
MOVWF CCPR1L
RETURN
LE_FEL_1
BTFSC PSTRCON,STRA
RETURN
BSF M2_HATRA
BTFSC MOZGAS,1
BCF M2_HATRA
BCF MOZGAS,0
BCF MOZGAS,1
MOVLW .221
CPFSLT MOZGAS
MOVWF MOZGAS
MOVLW .255
XORWF MOZGAS
BSF PSTRCON,STRA
GYORSIT_2
DECF CCPR1L
DECF PR2
DECF PR2
MOVF PR2,W
NOP
NOP
NOP
CPFSLT MOZGAS
RETURN
GOTO GYORSIT_2
;------------------------------PWM vezérl? adatküldés---------------------------
PWM_VEZERLO
MOVFF PWM_1,ADATBYTE
CALL PWM_ADAS
MOVFF PWM_2,ADATBYTE
CALL PWM_ADAS
MOVFF PWM_3,ADATBYTE
PWM_ADAS
MOVLW .8
MOVWF CIKLUS1
BCF STATUS,C
PWM_KULD_ADAT
BSF PWM_VONAL
BTFSS ADATBYTE,7
BCF PWM_VONAL
NOP
NOP
RLCF ADATBYTE
BCF PWM_VONAL
DECFSZ CIKLUS1
GOTO PWM_KULD_ADAT
RETURN
;-------------------------------------------------------------------------------
END
Sziasztok!
Ismer Valaki olyan programot amivel hangfájlt lehetet szerkeszteni?Mégpedig olyan módon amiben lehet logikai magas és alacsony kimenetet produkálni "line in,, kimeneten.Vagy amivel lehet olyan jelszintet generálni ami egy lámpa izzót nagyon lassan(naplemente)elhalványít?
Nem egészen értem a kérdést, de az elhalványítás szerintem könnyen megoldható. Kell egy PWM aminek a kitöltési tényezőjét mondjuk percenként csökkented. Így 255 perc telne el a teljes fényerőtől a sötétig. Illetve biztos valamivel kevesebb, mert nem tudom hány % a minimum amikor elkezd világítani és hány % fölött nem lehet már szabad szemmel észrevenni a fényerő növekedését. De egy 3 órás időtartamot szerintem meg lehetne csinálni.
Függetlenül attól, hogy "Line in" általában bemenet, lássuk mit értettem:
Hangfájl szerkesztésére vannak programok, pl most a Mac-emhez jár a Garage Band. Életemben nem használtam, de gondolom egy MP3 hangfájlból gond nélkül ki lehet vágni részeket. De sejtésem szerint nem ezt keresed. Egy MP3-at írni, ami pl. a PC hangkimenetén valamilyen látszólag digitális felépítésű és szimulál egy naplementét: szerintem ágyúval verébre.
Ha a feladat annyi, hogy legyen 3 óra alatt lámpás naplementéd, akkor erre a megoldást Pali79 leírta. Erre valószínű a legkisebb PIC (a topic szelleme szerint: legyen PIC) is megfelel, a PWM-et ekkor nyilván szoftver csinálja. A kitöltési tényező változását akár lookup táblában is leírhatod és akkor az lehet akár nem lineáris is. Ideális PIC-re. A PWM-et persze rá kell erőszakolni a lámpára, de ez HW nem PIC.
Régen nyilván analóg áramkörrel oldottam volna meg, de ma már jobb egy PIC.
Ha félreértettelek volna, előre elnézést, mert nem tudom, pontosan mi a célod.
Idézet: „Erre valószínű a legkisebb PIC (a topic szelleme szerint: legyen PIC) is megfelel, a PWM-et ekkor nyilván szoftver csinálja.” Nem feltétlenül. A PIC10F320 pl. Dip tokban 8, sot tokban 6 lábú és van benne hardveres pwm.
Köszönöm!
valami hasonló gondolat érdekelne!
A kérdést Én írtam rosszúl köszönöm a kiigazítást.
A gondolatom az lett volna -line out kimeneten- hogy 3 órán keresztül ad egy kimenet folyamatos magas jelet aztán lassan de fokozatosan csökken a jel erössége nullára.
De most mindentől függetlenűl,hogy lehet line out-on digitális jelet generálni?
|
|