MCP4922_Gen_Sinewave_copy
Dependencies: mbed
Fork of MCP4922_Sinewave by
Revision 3:cc5834a48eba, committed 2015-11-16
- Comitter:
- NorNick
- Date:
- Mon Nov 16 17:01:56 2015 +0000
- Parent:
- 2:2244c8986987
- Commit message:
- Finish
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Aug 24 12:36:59 2015 +0000 +++ b/main.cpp Mon Nov 16 17:01:56 2015 +0000 @@ -1,36 +1,97 @@ +/* +#include "mbed.h" +#include "MCP4922.h" +MCP4922 MCP(SPI_MOSI, SPI_SCK,SPI_CS); // MOSI, SCLK, CS +//Serial pc(USBTX,USBRX); + +#define PI 3.141593 + +*/ +/**** Main Function ***//* +int main(void) +{ + MCP.frequency(10000000); + + uint16_t i=0; + uint32_t Freq = 1000; + uint32_t Fsample=166667;//Sample is 166,667 Hz. + uint32_t Ampi = 612; + uint16_t Maxindex; + + Maxindex = (int) (Fsample / Freq); + if(Maxindex > 800) { + Fsample = Freq * 800; + Maxindex = 800; + } + + while(1) { + MCP.writeA((int)(Ampi * (1+ sin((2*PI*Freq*i)/Fsample))/2)); + i++; + if(i > Maxindex) + i=0; + } +} +*/ +/* #include "mbed.h" #include "MCP4922.h" MCP4922 MCP(SPI_MOSI, SPI_SCK,SPI_CS); // MOSI, SCLK, CS +#define PI 3.141593 -/**** Main Function ***/ int main(void) { - MCP.frequency(20000000); + MCP.frequency(10000000); uint16_t i=0; - uint8_t state=0; + uint16_t Ampi=511; + uint32_t Freq = 1000; + while(1) { - if(i < 0x0FFF) - { + + MCP.writeA((int)(Ampi * (1+sin((2*PI*Freq*i)/800000))/2)); + //if(i < 0x0FFF) + if(i < 800) i++; - - } else - { + //i=360; + //i=90; i=0; - state = ~state; + //MCP.writeA((int)(Ampi * sin(2*PI*Freq*i)/2)); + //wait_us(100); + } +} +*/ +/* สรุปแปร๊ป + ถ้าไม่มี 1+... นี่ กราฟจะเป็น ครึ่งภูเขาผสมกับกราฟขีดขึ้นดิ่งตรง + ถ้าไม่มี /800000 ที่จริงเป็นเลขอะไรก็ได้ในหลักแสนอ่ะ กราฟจะเป็นแค่ภูเขาหนึ่งลูกเท่านั้น (ครึ่งsin) + ถ้าไม่มี /2 ตรงยอดกราฟจะเป็นเส้นตรงปาดหน้าภูเขา + ถ้าไม่มี 1+ กับ /2 ล่ะ เหมือนกราฟแบบข้อแรก + ถ้าไม่มี /800000 กับ /2 กราฟช่วงแรกโค้ง สักพักเป็นแนวตรง ขาลงก็โค้ง + ถ้าไม่มี 1+ กับ /800000 กราฟเหมือนข้อสอง + ถ้าไม่มี 1+ , /800000 , /2 ล่ะ ก็เป็นแค่กราฟภูเขาหนึ่งลูกเอง แถมขีดลงให้ด้วย (ครี่งsin)*/ + +#include "mbed.h" +#include "MCP4922.h" + +MCP4922 MCP(SPI_MOSI, SPI_SCK,SPI_CS); // MOSI, SCLK, CS + +#define PI 3.141593 + +int main(void) +{ + MCP.frequency(100000000);//Frequ 100Mhz + + uint16_t i=0; + uint16_t Ampi=511; + + while(1) { + for(i=0;i<360;i++){ + MCP.writeA((sin(((i*PI)/180)))*Ampi+2048); + wait_us(20); } - if(state ==0) - { - MCP.writeA(i); - } - else{ - MCP.writeA( ((~i)+1)&0x0FFF); - } - wait_us(20); } -} \ No newline at end of file +}