toiy

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "MCP4922.h"
00003 
00004 MCP4922 MCP(SPI_MOSI, SPI_SCK,PB_6);  // MOSI, SCLK, CS
00005 /*หลักการคิดคือ จะแบ่งเป็น 4state โดยในแต่ละ state จะเป็นการเพิ่มหรือลดของ ค่า i โดยจะวนลูปเรื่อยๆจนออกจากเงื่อนไขและเปลี่ยน state  */
00006 
00007 /**** Main Function  ***/
00008 int main(void)
00009 {
00010     MCP.frequency(5000000);
00011 
00012     uint16_t i=0; //สร้างตัวแปร(int) 16 bit ชื่อ i ให้มีค่าเท่ากับ 0
00013     uint8_t state=0; //สร้างตัวแปร(int) 8 bit ชื่อ state ให้มีค่าเท่ากับ 0
00014     while(1) { //สร้างลูปให้ทำงานเมื่อมีไฟเข้า
00015         if(state == 0) { //ถ้า state = 0 ให้ทำด้านล่าง
00016             if(i < 0x0FFE/2) { //ถ้า i น้อยกว่าครึ่งหนึ่งของ 4094 ให้ i เพิ่มขึ้น และแสดงค่าที่จอ scop
00017                 i++;
00018                 MCP.writeA(i); 
00019             }
00020             else { //แต่ถ้าไม่ใช่ให้ i เท่ากับครึ่งหนึ่งของ 4094 และให้ state = 1
00021                 i = 0x0FFE/2
00022                 state = 1; 
00023             }
00024         }
00025         else if(state == 1) { //ถ้า state = 1 ให้ทำด้านล่าง
00026             if(i > 0) { //ถ้า i มากกว่า 0 ให้ i ลดลง และแสดงที่จอ scop
00027                 i--;
00028                 MCP.writeA(i);
00029             }     
00030             else { //แต่ถ้าไม่ใช่ให้ i เท่ากับครึ่งหนึ่งของ 4095 และให้ state = 2
00031                 i = 0x0FFF;
00032                 state = 2;
00033             }                   
00034         }
00035         else if(state == 2) { //ถ้า state = 2 ให้ทำด้านล่าง
00036             if(i > (0x0FFE/2)) { //ถ้า i มากกว่า ครึ่งหนึ่งของ 4094 ให้ i ลดลง และแสดงที่จอ scop
00037                 i--;
00038                 MCP.writeA(i);
00039             }     
00040             else { //แต่ถ้าไม่ใช่ให้ i เท่ากับครึ่งหนึ่งของ 4094 และให้ state = 3
00041                 i= 0x0FFE/2;
00042                 state = 3;
00043             }                   
00044         }
00045         else if(state == 3) { //ถ้า state = 3 ให้ทำด้านล่าง
00046             if(i < 0x0FFE) { //ถ้า i น้อยกว่า 4094 ให้ i เพิ่มขึ้น และแสดงค่าที่จอ scop
00047                 i++; 
00048                 MCP.writeA(i);
00049             }     
00050             else { //แต่ถ้าไม่ใช่ให้ i เท่ากับ 0 และให้ state เท่ากับ 0
00051                 i= 0;
00052                 state = 0;
00053             }                   
00054         }                                              
00055         wait_us(15); //รอ 15 ไมโครวินาที เพื่อไปต่อ
00056     }
00057 }