[elektro] dsPIC nem indul

Miko, Imre imre.miko at siemens.com
Thu Jan 10 11:08:05 CET 2008


Szia,

En most kezdtem 4011-el foglalkozni, mert egy projekthez jol jon a sebessege,
es foleg a tobb parhuzamos sample/hold az AD-ben.
- labkisztas rettenet, de gondolom ez a nagyobb labszamu tagok lebutitasabol adodik, de akkor is
- periferiak kozul a TIMER1-re, es az UART-ra irtam progit, egyenlore szimulatorban, 
  kezelesuk egyszeru jol kiforrottnak tunik. Bar az UART-nal itt is hianyzik az adas vege IT. 
- utasitaskeszletnel tetszik a repeat es do utasitasok, pl az alabbi kis macroval tudsz csinalni
  kisebb idoziteseket, es az egesz csak ket utasitas lesz.

// delay constant number of cycles (cycles = 2...16385)
#define delay_cycles(cycles)  ASM("repeat #%0 \n nop" :: "i" (cycles-2));

// delay variable number of cycles (cycles = 0...16383) +2
#define delay_cycles2(cycles) ASM("repeat %0 \n nop" :: "g" (cycles)); 

- IT kezeles is erdekes, nincs global IT enable, hanem IT level van
- C30 forditonal van binaris konstans tipus: 0b0000101
- Illetve a header fileok korrekt modon tartalmazzak az osszes SFR regisztert bitfield struktura-kent.

A progidhoz:
- LAT-ot mar kitargyaltak

- # include "p30f3012" helyett erdemes a #include <p30fxxxx.h> -t behuzni,
foleg ha valami modult irsz, mert akkor a projetben kivalasztott dspic-hez
tartozo headert tolti be.

- lehet, hogy nem megfelelo az oscillator konfiguraciod, ezert nem indul
a Fuse biteket a p30f3012 includban levo macro-kal tudod beallitani, pl:

        _FOSC(CSW_FSCM_OFF & XT_PLL16)			// XT quartz, PLL=16x
        _FWDT(WDT_OFF)					// Watchdog timer off
        _FBORPOR(PBOR_OFF & MCLR_EN)			// Brown-out reset off
        _FGS(CODE_PROT_OFF)				            // code protection off

A headerben minden variaciora megvan a pelda is.
Mekkora quarzt-ot hasznalsz, milyen fuse beallitasokkal?

- az osszes tapfesz labat be kell kotni (AVSS, AVCC ) is. 
(ezt meg nem probaltam, de valahol olvastam)

while(1) ciklusodban ugy peregnek a szamok, hogy azt ledeken nem fogod latni,
csak ha epp leall az oszcillator ;-)

Udv
Imre



> -----Original Message-----
> From: elektro-bounces at tesla.hu 
> [mailto:elektro-bounces at tesla.hu] On Behalf Of Horvath Zsolt
> Sent: 2008. január 9. 8:13
> To: elektro at tesla.hu; elektronika, uC, dsp, wlan, programozas
> Subject: [elektro] dsPIC nem indul
> 
> 
> 
>        Sziasztok!
> 
>        Van valaki aki foglalkozik dsPICekkel? Tippet 
> szeretnék kérni, hogy miért nem akar vajon elindulni? 
> Készítettem saját NYÁK-ot hozzá gyakorlónak. 16-os PIC-ekkel 
> több dolgot is készítettem, ugyanazokat a szempontokat vettem 
> itt is figyelembe.
> De ez a nyomi dsPIC nem akar menni. Ha nem nyomom bele a 
> foglalatba, hanem csak "szórakozok" vele ( értsd: különböző 
> testhelyzetekben érintem a foglalathoz ) akkor van olyan 
> testhelyzet, hogy elindul.
> 
>     Ezt abból gondolom, hogy olyan progi van benne, ami a B 
> portot birizgálja és felgyulladnak a LED-ek. ( A többi porton 
> meg nem. ) A program egyébként egy nagyon szimpla C progi, 
> Microchip Student fordítóval fordítva. Ja és a programozó is 
> saját. Azt nem tudom, hogy az rendesen működik-e.
> 
>     dsPIC30F3012-ről van szó.
> 
> Itt a C progi:
> 
> # include "p30f3012"
> 
> int counter;
> int main ( void )
> {
>     counter  = 1;
>     TRISB = 0;
>     while(1)
>     {
>        PORTB = counter;
>        counter++;
>     }
>     return 0;
> }
> 
>           Üdv.: Horváth Zsolt
> 
> 
> -----------------------------------------
>           elektro[-flame|-etc]
> 



More information about the Elektro mailing list