Test code for proving multi-NCO implementation on Altera FPGA using DEO Nano development board

Dependencies:   MODSERIAL mbed-rtos mbed

cnc.h

Committer:
JonFreeman
Date:
2014-04-24
Revision:
0:7f5b51873953

File content as of revision 0:7f5b51873953:

/**
Programme   COPIED FROM "cnc__machine_driver_3"
Author      Jon Freeman

Designed to compile and run on:
    Mbed LPC1768
    Freescale KL25Z
    Freescale KL46Z
*/
using namespace std;

typedef float  fl_typ;  //  
    
//#define SPI_Enable
#define I2C_Enable
#define ESTOP   0x100   //  bits used in input reading KX3 limit and EStop switches
#define XLIM    1
#define YLIM    2
#define ZLIM    4
#define UNKN    8

const   fl_typ  TWO_PI = 8.0 * atan(1.0);
const   fl_typ  epsilon = 1e-5;
struct  pirbufgrain {
    fl_typ  x,
            y,
            z,
            distance_code,
            f_rate;
    }   ;

struct  singleGparam    {   //  Place to put all we know about 'x' or 'j' etc parameter from G Code line
    fl_typ          flt;
    unsigned long   ul;
    int         i,  c;
    bool            changed;      // Flagged true when new value for this axis found in Gcode line, false otherwise 
}   ;

struct  Gparams {  //  Where possibly messy G code line gets ordered and sorted into
    struct  singleGparam   x, y, z, i, j, r, a, b, c, d;   //  After sorting, know where to find any X, Y etc values !
}   ;

const int NumofGParams = sizeof(struct Gparams) / sizeof(struct singleGparam);

#define clken       XDi
#define d_in_isr    XSt
#define d_in_osr    YDi
#define ld_osr      YSt
#define ld_pir      ZDi
#define sclk        ZSt
#define sclr        ADi