Posts Tagged ADC
Xduino v0.2 to be released
Posted by Ram in ARM, detail, Xduino release on July 31, 2009
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.3 */ #include "main.h" using namespace compatArduino; void InterruptPB9(void) { Serial1.printf("(interrupt 9!!! %d)",digitalRead(PB9)); } void InterruptPB8(void) { Serial1.printf("(interrupt 8!!! %d)",digitalRead(PB8)); } int LedPin = PB7; // as labelled on ARM Cortex-M3 board int main(void) { float version=0.3; 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",1,2,3); Serial1.printf("The floating point number is %d",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.",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 ...",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()
Xduino v0.12 should come out within the next few days and it will have Serial buffer, Round-robin general purpose library, ADC (Analog input) and might also have DAC (Analog output) functionalities. Note DAC function does not exist in Arduino (yet). PWM function should be coming out soon as well but might not always be needed as there are 2 DAC channels on the ARM Cortex-M3 STM32F10ret6 board which is being used for testing. Arduino compatibility syntax will be provided on the new functions as well.
Xduino v0.12 should come out within the next few days and it will have Serial buffer, Round-robin general purpose library, ADC (Analog input) and might also have DAC (Analfunctionalities. Note DAC function does not exist in Arduino (yet). PWM function should be coming out soon as well but might not always be needed as there are 2 DAC channels on the ARM Cortex-M3 STM32F10ret6 board which is being used for testing. Arduino compatibility syntax will be provided on the new functions as well.
Xduino v0.12 should come out within the next few days and it will have Serial buffering (user can define size), Round-robin general purpose library, ADC (Analog input) and might also have DAC (Analog output) functionalities. Note DAC function does not exist in Arduino platform (yet). PWM function should be coming out soon as well but might not always be needed as there are 2 DAC channels on the ARM Cortex-M3 STM32F10ret6 board which is being used for testing. Arduino compatibility syntax will be provided on the new functions as well.
All suggestions are welcome. Enjoy!
The next release of Xduino will be version 0.2 making a jump from version 0.1x as most of the Arduino programming functions has been implemented along with additional features, especially those exceeding what current Arduino platform can provide.
Supported Arduino syntax will be:
pinMode digitalWrite digitalRead
analogRead (12-bits 0-4095 range)
analogWrite (12-bits 0-4095 range true Analog output not PWM)
attachInterrupt (upto 16 interrupts)
detachInterrupt interrupts noInterruptsdelay delayMicroseconds millis micros
Serial – print println read available flush
on top of this more advanced functionality will include:
Setting Serial port Rx and Tx buffer size
Serial.printf – optional C style printf function for Serial port eg.
printf(“hello %d”, 123);digitalToggle – toggle state of digital output
analogLastwrite – get the latest value set by analogwrite
(General purpose Round-Robin library will be included.)
along with endless possibilities offered by C++ libraries
More to follow… Suggestions are always welcome!
Xduino v0.12 to be released
Posted by Ram in ARM, Cortex-M3, Xduino release on July 24, 2009
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.3 */ #include "main.h" using namespace compatArduino; void InterruptPB9(void) { Serial1.printf("(interrupt 9!!! %d) ", digitalRead(PB9)); } void InterruptPB8(void) { Serial1.printf("(interrupt 8!!! %d) ", digitalRead(PB8)); } int LedPin = PB7; // as labelled on ARM Cortex-M3 board int main(void) { float version=0.3; 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 ",1,2,3); Serial1.printf("The floating point number is %d ",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. ",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 ... ",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()
Xduino v0.12 should come out within the next few days and it will have Serial buffer, Round-robin general purpose library, ADC (Analog input) and might also have DAC (Analog output) functionalities. Note DAC function does not exist in Arduino (yet). PWM function should be coming out soon as well but might not always be needed as there are 2 DAC channels on the ARM Cortex-M3 STM32F10ret6 board which is being used for testing. Arduino compatibility syntax will be provided on the new functions as well.