Simple PWM tutorial using FRDM-KL25Z made by Twistx77 from TutoElectro

Dependencies:   mbed

Committer:
Twistx77
Date:
Tue Feb 03 17:10:33 2015 +0000
Revision:
1:778a662bafcf
Parent:
0:647746eea42d
Simple PWM tutorial using FRDM-KL25Z made by Twistx77 from TutoElectro

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Twistx77 0:647746eea42d 1 #include "mbed.h"
Twistx77 0:647746eea42d 2
Twistx77 1:778a662bafcf 3 AnalogOut dac(PTE30);
Twistx77 1:778a662bafcf 4
Twistx77 0:647746eea42d 5 Serial pc(USBTX,USBRX);
Twistx77 0:647746eea42d 6
Twistx77 1:778a662bafcf 7 uint16_t dacIntValue = 0;
Twistx77 1:778a662bafcf 8
Twistx77 1:778a662bafcf 9 float dacValue = 0;
Twistx77 1:778a662bafcf 10 float dacVoltage = 0;
Twistx77 0:647746eea42d 11
Twistx77 0:647746eea42d 12 void rxInterrupt()
Twistx77 0:647746eea42d 13 {
Twistx77 0:647746eea42d 14
Twistx77 0:647746eea42d 15 switch(pc.getc()) {
Twistx77 0:647746eea42d 16
Twistx77 0:647746eea42d 17 case 'a':
Twistx77 0:647746eea42d 18
Twistx77 1:778a662bafcf 19 if(dacValue>0.001){
Twistx77 1:778a662bafcf 20 dacValue = dacValue - 0.001;
Twistx77 1:778a662bafcf 21 }
Twistx77 0:647746eea42d 22
Twistx77 1:778a662bafcf 23 dacIntValue = (uint16_t)(4095*dacValue);
Twistx77 0:647746eea42d 24
Twistx77 0:647746eea42d 25 break;
Twistx77 0:647746eea42d 26
Twistx77 0:647746eea42d 27 case 's':
Twistx77 0:647746eea42d 28
Twistx77 1:778a662bafcf 29 if(dacValue<1){
Twistx77 1:778a662bafcf 30 dacValue = dacValue + 0.001;
Twistx77 0:647746eea42d 31 }
Twistx77 1:778a662bafcf 32
Twistx77 1:778a662bafcf 33 dacIntValue = (uint16_t)(4095*dacValue);
Twistx77 0:647746eea42d 34
Twistx77 0:647746eea42d 35 break;
Twistx77 0:647746eea42d 36
Twistx77 0:647746eea42d 37 case 'f':
Twistx77 1:778a662bafcf 38
Twistx77 1:778a662bafcf 39 if(dacIntValue> 1){
Twistx77 1:778a662bafcf 40 dacIntValue = dacIntValue - 1;
Twistx77 0:647746eea42d 41 }
Twistx77 1:778a662bafcf 42
Twistx77 1:778a662bafcf 43 dacValue = dacIntValue/4095.0;
Twistx77 1:778a662bafcf 44
Twistx77 1:778a662bafcf 45
Twistx77 0:647746eea42d 46 break;
Twistx77 0:647746eea42d 47
Twistx77 0:647746eea42d 48
Twistx77 0:647746eea42d 49 case 'g':
Twistx77 1:778a662bafcf 50
Twistx77 1:778a662bafcf 51 if(dacIntValue< 4095){
Twistx77 1:778a662bafcf 52 dacIntValue = dacIntValue + 1;
Twistx77 0:647746eea42d 53 }
Twistx77 1:778a662bafcf 54
Twistx77 1:778a662bafcf 55 dacValue = dacIntValue/4095.0;
Twistx77 1:778a662bafcf 56
Twistx77 0:647746eea42d 57 break;
Twistx77 0:647746eea42d 58
Twistx77 0:647746eea42d 59 default: break;
Twistx77 0:647746eea42d 60 }
Twistx77 0:647746eea42d 61
Twistx77 1:778a662bafcf 62 dacVoltage = 3.3 * dacValue;
Twistx77 1:778a662bafcf 63
Twistx77 1:778a662bafcf 64 dac.write(dacValue);
Twistx77 1:778a662bafcf 65
Twistx77 1:778a662bafcf 66
Twistx77 1:778a662bafcf 67 pc.printf("DAC Value: %i, DAC Voltage: %.4f \r\n", dacIntValue, dacVoltage);
Twistx77 0:647746eea42d 68
Twistx77 0:647746eea42d 69 }
Twistx77 0:647746eea42d 70
Twistx77 0:647746eea42d 71 int main()
Twistx77 0:647746eea42d 72 {
Twistx77 0:647746eea42d 73
Twistx77 0:647746eea42d 74 pc.baud(115200);
Twistx77 0:647746eea42d 75 pc.attach(&rxInterrupt);
Twistx77 0:647746eea42d 76
Twistx77 0:647746eea42d 77 while(1);
Twistx77 0:647746eea42d 78 }