Led dimming

Here is an example for dimming the LED connected to PA4 while attaching interrupt to PB8 and PB9. It has been tested with Xduino v0.3 (more projects and examples will be added in the near future)

/* Xduino v0.31 */
 
#include "main.h"
using namespace compatArduino;
 
void InterruptPB9(void)
{
Serial1.printf("(interrupt 9!!! %d)\r\n",digitalRead(PB9));
}
 
 
void InterruptPB8(void)
{
Serial1.printf("(interrupt 8!!! %d)\r\n",digitalRead(PB8));
}
 
 
int LedPin = PB7;		// as labelled on ARM Cortex-M3 board
 
 
int main(void)
{
 
float version=0.31;
double fnumber=1234.5678;
char myinput;
 
	doInit(); 				//Initialize Xduino components, this line is required
 
	Serial1.begin(115200); 	//USART1
 
 
	Serial1.printf("Starting Xduino (v%f) example program...",version);
	Serial1.printf("hello!! %d %d %d\r\n",1,2,3);
	Serial1.printf("The floating point number is %f \r\n",fnumber);
 
	pinMode(LedPin,OUTPUT);
	pinMode(PB1,OUTPUT);
	pinMode(PB8,INPUT);
	pinMode(PB9,INPUT);
 
	digitalWrite(PB1,HIGH);
 
	attachInterrupt(PB9,InterruptPB9,CHANGE);
	attachInterrupt(PB8,InterruptPB8,RISING);
 
 
while(1)
{
		if(Serial1.available())
		{
			myinput=Serial1.read();
			Serial1.printf("This system has been up for %lu milliseconds.\r\n",millis());
 
			if(myinput=='a') { digitalWrite(PB1,HIGH); }	// press a to turn PB1 to HIGH state
			if(myinput=='b') { digitalWrite(PB1,LOW); }	// press b to turn PB1 to HIGH state
			if(myinput=='n') { noInterrupts(); }			// press n to disable all existing interrupts
			if(myinput=='i') { interrupts(); }			// press i to enable all existing interrupts
			Serial1.printf("Input is %c ...\r\n",myinput);
		}
 
 
//using analogWrite on channel 1 which is PA4 to dim the LED connected to it
		for(int i=0;i<=0x0FFF;i+=0xFF)	// smoothly turn PA4 (DAC port 1) on
		{
			analogWrite(1,i);
			delay(50);
		}
 
		for(int j=0x0FFF;j>=0;j-=0xFF)	// smoothly turn PA4 (DAC port 1) off
		{
			analogWrite(1,j);
			delay(50);
		}
 
		analogWrite(1,0xFFF);			// Turn on PA4 fully at once 
		delay(100);
		digitalWrite(LedPin,LOW); 		// Turn off PA4 fully at once 
		delay(100);
 
}	//## END while(1)
 
} //## END main()
Be Sociable, Share!
Share
  1. No comments yet.
(will not be published)
*