frequency 1000000 = 1 Hz

Dependencies:   mbed

Fork of MCP4922_Sinewave by FRA221_2017

main.cpp

Committer:
59340500018
Date:
2017-11-22
Revision:
8:cc47e185dca8
Parent:
7:e0544332d8d9

File content as of revision 8:cc47e185dca8:


#include "mbed.h"
#include "MCP4922.h"

MCP4922 MCP(SPI_MOSI, SPI_SCK,PB_6);  // MOSI, SCLK, CS
Serial pc(D1,D0);

/**** Main Function  ***/
int main(void)
{
    MCP.frequency(7000000);

    uint16_t i=0;
    uint8_t state=0;
    uint8_t chk=0;
    uint8_t data;
    while(1) {
        if(state==0) {
            i++;
            MCP.writeA(i);
            if(i==0x7FF){
                state=1;
            }
        }
        
        else if (state==0 && chk==1){
            ++i;
            MCP.writeA(i);
            if(i==0x7FF){
                state=1;
            }
        }
        
        if(state==1){
            --i;
            MCP.writeA(i);
            if(i==0){
                state=2;
            }   
        }
                
        if(state==2){
            i = 0x0FFE;
            MCP.writeA(i);
            state = 3;
        }
        
        if(state==3){
            if(i > 0x7FF){
                --i;
                MCP.writeA(i);
                if(i == 0x7FF){
                    state = 4;
                }
            }
        }
        
        if(state==4){
            ++i;
            MCP.writeA(i);
            if(i == 0x0FFE){
                i = 0;
                MCP.writeA(i);
                state = 5;
            }
        }
        
        if(state==5){
            chk = 1;
            state = 0;
        }
        
        if(pc.readable()){
            data = pc.getc();
            if(data=='s'){
                pc.printf("i: %d, state: %d \n", i, state);
            }
        }
        wait_us(11.99);
    }
}

/*
if(i < 0x0FFE) {
            i++;

        } else {
            i=0;
            state = ~state;
        }

        if(state ==0) {
            MCP.writeA(i);
        } else {
            MCP.writeA( ((~i)+1)&0x0FFF);
        }
*/