"Hello World" in C from dsPIC30F2020

Status
Not open for further replies.

kchriste

New Member
Forum Supporter
Since there seems to be very little "simple" code for the dsPIC;
here is a "Hello World" example for the dsPIC30F2020 for any who may be interested:

Code:
/* This is a "Hello world" example for the dsPIC30F2020. It will toggle all
*  IO pins on the chip at a rate which is visible from a LED connected to
*  one of the IO pins. It uses the slow internal oscillator so all that is 
*  needed is a 10K pullup resistor on MCLR (pin 1 on a 28 pin DIP chip) and
*  power connected to ALL Vdd, Vss, AVdd, and AVss pins. Don't forget to
*  put some 0.1uF bypass capacitors across the power pins close to the PIC.
*/

#include <p30f2020.h>

_FOSC(CSW_FSCM_OFF & FRC_LO_RANGE & OSC2_IO); //Oscillator Configuration
_FOSCSEL(FRC);                                //Oscillator Selection
_FWDT(FWDTEN_OFF);                            //Turn off WatchDog Timer
_FGS(CODE_PROT_OFF);                          //Turn off code protect
_FPOR( PWRT_OFF );                            //Turn off power up timer




int main(void)
{
	
	unsigned long x;

	ADPCFG = 0xffff;	//make ADC pins all digital
	TRISA = 0;		//Make all PORTs all outputs
	TRISB = 0;
	TRISD = 0;
	TRISE = 0;
	TRISF = 0;

	while(1)
	{
		for( x=0; x<100000; x++){;} //Delay apx 200ms
		LATA = ~LATA;		    //Toggle all bits on ALL ports
		LATB = ~LATB;
		LATD = ~LATD;
		LATE = ~LATE;
		LATF = ~LATF;
	} 
	return 0;
}

Edit: The compiler used was MicroChip's C30 student edition which is available for free on their site.
 
Last edited:
Thank you. I hope to be experimenting with a dsPIC soon.

I think Futz may have an example on his web site.

Regards, Mike
 
I have a 30F2012 half wired up on a breadboard so I shall be trying this shortly - probably tomorrow.

This will be a good start point, thank you.

Mike.
 
I did check out some of Futz's posts here, but they were for a different dsPIC and were more practical and thus more complex. The PIC programmed and worked perfectly on the first try, though I did debug the code in SIM first. On another note:

While reading though the C30 Compiler User’s Guide I found this amusing piece of code:

Code:
void __attribute__((boot)) chuck_cookies()
{
int hurl;
int them = 55;
char *where = "far";
splat(where);
/* ... */
}
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…