Fórum témák

» Több friss téma
Fórum » CCS PIC Compiler
 
Témaindító: (Felhasználó 1542), idő: Ápr 3, 2006
Lapozás: OK   82 / 118
(#) AccessDenied válasza Hp41C hozzászólására (») Okt 24, 2012 /
 
.................... enable_interrupts(INT_EXT|INT_RB);
049A: MOVLW 18
049B: BCF 03.5
049C: IORWF 0B,F

Erre fordul le, és ha jól értelmezem, ez pont az INTE és RABIE bit 1-re állítása, amivel engedélyezem az EXT és az RB interruptot. A RABIF és a INTF-et meg olvasni kell, nem? (az jelzi, hogy van-e interrupt)

.................... enable_interrupts(INT_RB); //RA2 megszakítás be
049A: BCF 03.5
049B: BSF 0B.3
049C: MOVLW FF
049D: BSF 03.6
049E: IORWF 16,F

Úgy látom, hogy az INT_RB|INT_EXT paraméterezés kor nem állítja be az IOCB biteket, amit beállít a sima INT_RB paraméterre és ezért nem működhet, most kipróbálom külön, külön, így, élesbe:

.................... enable_interrupts(INT_RB); //RA2 megszakítás be
049A: BCF 03.5
049B: BSF 0B.3
049C: MOVLW FF
049D: BSF 03.6
049E: IORWF 16,F
.................... enable_interrupts(INT_EXT);
049F: BCF 03.6
04A0: BSF 0B.4

Így azért már mindjárt más, mintha egybe paraméterezném. Ez egy bug lenne?
A hozzászólás módosítva: Okt 24, 2012
(#) AccessDenied válasza AccessDenied hozzászólására (») Okt 24, 2012 /
 
És így már működik is.
(#) zoox hozzászólása Okt 24, 2012 /
 
Sziasztok.

Van-egy butus kérdésem.it-t szeretnék használni és nem értem hogy mi a különbség
int_EXT és int_RB -t között ?Vagy hol találok valami utalást erre az adatlapon(16F886)

köszike
(#) Hp41C válasza zoox hozzászólására (») Okt 24, 2012 /
 
Szia!
RB0/INT: Adatlap 14.3.1, RB interrupt: 14.3.3, 3.4 fejezeteiben.
(#) AccessDenied válasza zoox hozzászólására (») Okt 24, 2012 /
 
Azon a picen az int_EXT az RB0 lábra jövő interruptra lesz aktív, és definiálhatod, hogy melyik élre interruptoljon. Az int_RB-vel az összes RB lábra érkező interruptot fogadhatod, ami akkor fog interruptolni, ha bármelyik RB lábon az érték változik.

"ITCON" register
"Additional PORTB Pin Functions"
"IOCB" regiszter, ezeket nézegesd!
(#) zoox válasza AccessDenied hozzászólására (») Okt 24, 2012 /
 
Köszi kezdem érteni,talán.Hogy tudom beállítani RB5 -öt hogy lefutó élre generáljon it-t mert csak felfutóra müködik #int_rb-t használva.
  1. #int_rb
  2. void RB5interrupt()
  3.         {
  4.         ......
  5.         }
  6. ....
  7. ...
  8. void    main()
  9. {
  10.  
  11.  
  12.         SET_TRIS_C(0)
  13.         SET_TRIS_B(0b00100000);
  14.         SET_TRIS_A(255);               
  15.        
  16.  
  17.        
  18.  
  19.         while (1)
  20.                 {
  21.                
  22.                 enable_interrupts(INT_RB5);    
  23.                 enable_interrupts(GLOBAL);
(#) Jossz hozzászólása Nov 17, 2012 /
 
Sziasztok!
Segítséget kérek, ha valaki már beleásta magát a power_pwm utasításik rejtelmeibe. Hibrid PWM/PDM meghajtást akarok csinálni egy teljes hidas megoldásra. Az elmélet rendben is van, a két PWM csatorna (PWM0,PWM1,PWM2,PWM3) is szépen működik 50%-os kitöltéssel, komplementer módban, csak az a gondom, hogy nem sikeredik a második csatornát, azaz a PWM2 és PWM3 jelet az első csatornához képest 50%-al odébb shiftelnem. Hogy érthetőbb legyek, csatolok két képet, az elsőn a szkópom képe van, a másodikon az a vázlatom, hogy milyennek kellene lennie. Nagyon megköszönném, ha volna valakinek ötlete, hogy ezt mi módon lehetne CCS C-ben megoldani...
(#) Jossz válasza Jossz hozzászólására (») Nov 18, 2012 /
 
Ja igen, PIC18F4431 MCU-val dolgozom és a 4.107 CCS C-vel.
(#) vilmosd válasza Jossz hozzászólására (») Nov 18, 2012 /
 
Most ket szinuszt akarsz eloallitani 180 fokos eltolassal?
(#) Jossz válasza vilmosd hozzászólására (») Nov 18, 2012 /
 
Nem, ez csak egy kimenet lesz a teljes hídon, amint az a diagram tetején levő kék feszültségábrán is láthatod. Ezt a PDM (Pulse Density Modulation) módszert a frekvencia növeléskor tapasztalható kimenő feszültség csökkenés kivédésére, ill. a kimenet hatásfokának javítására találták ki, elsősorban nagyfeszültséggel és nagyfrekvenciával előállított plazma alkalmazásokhoz. A shiftelés változtatásával lehet a hagyományos PWM-től távolodni a PDM felé, így viszonylag jól be lehet állítani az optimális kimeneti állapotot. No, nekem jelenleg ezzel a shifteléssel van gondom. Van ugyan egy D flip-flopokból és AND kapukból álló kapcsolás, ami elvileg ezt megoldja (de szerintem a kapcsolás nem jó, megépítettem, de ugyanaz jön ki belőle shiftelés nélkül, mint ami bement) csak arra gondoltam, hogy ha ezt a shiftelést meg tudnám oldani közvetlen az MCU programjával, akkor az lenne a legegyszerűbb. Egyébként idecsatolom azt a bizonyos kapcsolási rajzot is, hátha van ötleted, miért nem jó. Idecsatolom az eredeti megoldást is, amiről csináltam, csak én nem akartam használni az UCC3895-ös fázis shiftelt PWM controllert, hiszen a 4413-as PIC biztosít akár 8 PWM csatornát is. Az én rajzomon a PWM4 jel a proci harmadik PWM moduljából jön, ugyanolyan gyakorlatilag mint a szkópképen az 1. csatorna jele (sárga). Igazából (ha ezzel a kapcsolással lehet csak megoldani a shiftelést, az lenne a jó, hogy ennek a PWM4-nek a kitöltési tényezőjének a változtatásával lehetne a shiftelést tologatni).
A hozzászólás módosítva: Nov 18, 2012
(#) Jossz válasza Jossz hozzászólására (») Nov 18, 2012 /
 
Ja igen, a PWM4 jele 90%-os kitöltéssel megy, hogy mindig jelen legyen a magas jel, amikor az órajel megérkezik a 0. és a 3. csatorna felfutó élének hatására. Azt megfigyeltem, hogy ha a PWM4 kitöltését 60% alá állítom, akkor a 2. és 3. csatorna jele megszűnik az AND kapuk kimenetén (Q3 és Q4). Ez, gondolom abból ered, hogy ilyen esetben, mikor a 3. csatorna magas jelet ad az 2. D tároló órajelére, akkor a PWM4 jele már nem magas (kevés a pl. 50% kitöltés).
(#) Jossz hozzászólása Nov 19, 2012 /
 
Fiúk, tudja valaki, hogy a set_power_pwm_override() funkció mit csinál és milyen összefüggése van a setup_power_pwm() funkció pwm_override_sync paraméterével?
Tesztelem, de nekem semmilyen reakciót nem mutat...
(#) icserny válasza Jossz hozzászólására (») Nov 19, 2012 /
 
Van róla leírás: http://www.ccsinfo.com/downloads/ccs_c_manual.pdfwww.ccsinfo.com/downloads/ccs_c_manual.pdf[/url]

set_power_pwm_override(pwm, override, value)
pwm - a CCP modul sorszáma
override - ha true akkor az OVDCONS regiszter, egyébként pedig a PDC regiszter határozza meg a kimenetek állapotát.
value - 1: aktív, 1: inaktív állapotban lesz a PWM kimenet a következő duty ciklusban.

Idézet:
„Tesztelem, de nekem semmilyen reakciót nem mutat...”
Többek között ezért nem használom a CCS-t, mert nem lehet belenézni, hogy mit csinál az adott függvény.
(#) vilmosd válasza Jossz hozzászólására (») Nov 19, 2012 /
 
En ugy szoktam az ilyen helyzeteket megoldani, hogy 1.: csinaltatok a forditaskor ASM listat, es azt vegignezem, 2.: MPLAB alatt szimulatorban nezem milyen regisztereket valtoztat a fveny. Segitseg lehet meg az adott PIC xxx.h file olvasgatasa, mert altalaban leirjak a parameterek jelenteset.
(#) Jossz válasza icserny hozzászólására (») Nov 19, 2012 /
 
Köszönöm, frissítettem a leírásomat, én még a 2007. éviből dolgozom...
(#) Jossz válasza vilmosd hozzászólására (») Nov 19, 2012 /
 
Köszönöm, jó ötlet mindkettő, megfogadom.
(#) pjg hozzászólása Nov 22, 2012 /
 
output_float

Ez azt jelenti, hogy a kimenetet magas szintre kapcsolom?

output_low

Ez pedig alacsonyra?

S ez mi?

output_bit(ONE_WIRE_PIN, shift_right(&data,1,0));
(#) vicsys válasza pjg hozzászólására (») Nov 22, 2012 /
 
A float, lebegő állapot. Se nem H, se nem L. Az output_high a magas szint.
Az utolsónál egy adat kibillegtetése a ONE_WIRE_PIN nevű lábra.
(#) pjg válasza vicsys hozzászólására (») Nov 22, 2012 /
 
S ezt a float szintet hogyan tudom elérni. Illetve egy Open Collector -os PIC-nél csak alacsony és float szint értelmezhető?
(#) vicsys válasza pjg hozzászólására (») Nov 22, 2012 /
 
output_float (PIN_A0);
Például így.
Az adott PIC adatlapjából puskázhatsz...
(#) pjg válasza vicsys hozzászólására (») Nov 22, 2012 /
 
Köszi.
(#) sysy válasza pjg hozzászólására (») Nov 22, 2012 /
 
Ez egyszerűen bemenetnek kapcsolja az adott portlábat. Ha nincs felhúzó ellenállás engedélyezve és bekapcsolva, akkor float (lebegő) lesz a portláb.
(#) pjg válasza sysy hozzászólására (») Nov 22, 2012 /
 
Ah! Értem. Köszi szépen.

Azt nem értettem, hogy a kimeneten van egy külső 5KOhm-os felhúzó ellenállás. Akkor mi van? De így tiszta.
A hozzászólás módosítva: Nov 22, 2012
(#) pjg válasza icserny hozzászólására (») Dec 5, 2012 /
 
Idézet:
„Többek között ezért nem használom a CCS-t”


Mit javasolsz mást?
(#) potyo válasza pjg hozzászólására (») Dec 5, 2012 /
 
A microchip gyári fordítóit
(#) pjg válasza potyo hozzászólására (») Dec 5, 2012 /
 
Köszi. Ránézek.
(#) messer hozzászólása Dec 22, 2012 /
 
Sziasztok elkelne egy kis segítség.
16HV616 MPLAb_8.88, ccsc_4.138

Szeretném a fent írt pic-et, PICKIT3-al mplab alatt debuggolni a következő üzenetet kapom amikor akarom futtatni a programot:
Idézet:
„Running...
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.”


a program egyszerű:
  1. #include<16HV616.h>                                          //Device
  2. #DEVICE  ICD=TRUE
  3. #device adc=10
  4.  
  5.  
  6. #FUSES INTRC_IO                                                                        
  7. #FUSES WDT
  8. #FUSES NOPUT
  9. #FUSES MCLR
  10. #FUSES NOPROTECT
  11. #FUSES IOSC4
  12. #FUSES NOBROWNOUT
  13.  
  14. #use delay(clock=4000000,RESTART_WDT)
  15.  
  16.  
  17. void main()                                                                                                     //main script
  18. {
  19.         while(1)
  20.         {
  21.         output_high(pin_c2);
  22.         delay_ms(100);
  23.         output_low(pin_c2);
  24.         delay_ms(100);
  25.         }
  26. }


Tudnátok segíteni?
Előre is köszönöm.
(#) Hp41C válasza messer hozzászólására (») Dec 22, 2012 /
 
Szia!
Kellene hozzá egy AC162083 (Required) adapter / header...
(#) messer válasza Hp41C hozzászólására (») Dec 23, 2012 /
 
Köszönöm, az adatlapban nem találtam. Hol tudom megnézni, hogy adott pichez kell-e header vagy nem?
(#) Hp41C válasza messer hozzászólására (») Dec 23, 2012 /
 
Szia!
A típus Microchip honlapja / Developping tools / Emulators/In-Circuit debuggers:
Idézet:
„PICkit 3 In-Circuit Debugger (PG164130) AC162083 (Required)”
Következő: »»   82 / 118
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