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

Dependencies:   MODSERIAL mbed-rtos mbed

Committer:
JonFreeman
Date:
Thu Apr 24 15:35:38 2014 +0000
Revision:
0:7f5b51873953
For testing numerically controlled oscillators implemented in Altera FPGA fitted to DEO Nan0 development board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JonFreeman 0:7f5b51873953 1 /**
JonFreeman 0:7f5b51873953 2 Programme COPIED FROM "cnc__machine_driver_3"
JonFreeman 0:7f5b51873953 3 Author Jon Freeman
JonFreeman 0:7f5b51873953 4
JonFreeman 0:7f5b51873953 5 Designed to compile and run on:
JonFreeman 0:7f5b51873953 6 Mbed LPC1768
JonFreeman 0:7f5b51873953 7 Freescale KL25Z
JonFreeman 0:7f5b51873953 8 Freescale KL46Z
JonFreeman 0:7f5b51873953 9 */
JonFreeman 0:7f5b51873953 10 using namespace std;
JonFreeman 0:7f5b51873953 11
JonFreeman 0:7f5b51873953 12 typedef float fl_typ; //
JonFreeman 0:7f5b51873953 13
JonFreeman 0:7f5b51873953 14 //#define SPI_Enable
JonFreeman 0:7f5b51873953 15 #define I2C_Enable
JonFreeman 0:7f5b51873953 16 #define ESTOP 0x100 // bits used in input reading KX3 limit and EStop switches
JonFreeman 0:7f5b51873953 17 #define XLIM 1
JonFreeman 0:7f5b51873953 18 #define YLIM 2
JonFreeman 0:7f5b51873953 19 #define ZLIM 4
JonFreeman 0:7f5b51873953 20 #define UNKN 8
JonFreeman 0:7f5b51873953 21
JonFreeman 0:7f5b51873953 22 const fl_typ TWO_PI = 8.0 * atan(1.0);
JonFreeman 0:7f5b51873953 23 const fl_typ epsilon = 1e-5;
JonFreeman 0:7f5b51873953 24 struct pirbufgrain {
JonFreeman 0:7f5b51873953 25 fl_typ x,
JonFreeman 0:7f5b51873953 26 y,
JonFreeman 0:7f5b51873953 27 z,
JonFreeman 0:7f5b51873953 28 distance_code,
JonFreeman 0:7f5b51873953 29 f_rate;
JonFreeman 0:7f5b51873953 30 } ;
JonFreeman 0:7f5b51873953 31
JonFreeman 0:7f5b51873953 32 struct singleGparam { // Place to put all we know about 'x' or 'j' etc parameter from G Code line
JonFreeman 0:7f5b51873953 33 fl_typ flt;
JonFreeman 0:7f5b51873953 34 unsigned long ul;
JonFreeman 0:7f5b51873953 35 int i, c;
JonFreeman 0:7f5b51873953 36 bool changed; // Flagged true when new value for this axis found in Gcode line, false otherwise
JonFreeman 0:7f5b51873953 37 } ;
JonFreeman 0:7f5b51873953 38
JonFreeman 0:7f5b51873953 39 struct Gparams { // Where possibly messy G code line gets ordered and sorted into
JonFreeman 0:7f5b51873953 40 struct singleGparam x, y, z, i, j, r, a, b, c, d; // After sorting, know where to find any X, Y etc values !
JonFreeman 0:7f5b51873953 41 } ;
JonFreeman 0:7f5b51873953 42
JonFreeman 0:7f5b51873953 43 const int NumofGParams = sizeof(struct Gparams) / sizeof(struct singleGparam);
JonFreeman 0:7f5b51873953 44
JonFreeman 0:7f5b51873953 45 #define clken XDi
JonFreeman 0:7f5b51873953 46 #define d_in_isr XSt
JonFreeman 0:7f5b51873953 47 #define d_in_osr YDi
JonFreeman 0:7f5b51873953 48 #define ld_osr YSt
JonFreeman 0:7f5b51873953 49 #define ld_pir ZDi
JonFreeman 0:7f5b51873953 50 #define sclk ZSt
JonFreeman 0:7f5b51873953 51 #define sclr ADi
JonFreeman 0:7f5b51873953 52