Public feed #533433

Unnamed

public c v1 · immutable
Raw Edit
·published 2007-06-03 13:44 UTC
rendered paste body
#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers#include <stdio.h>#define TMC_WRITE   0x00#define TMC_READ    0x01#define TMC_RAM     0x80#define TMC_REG     0x00#define SWITCH_BYTE_ORDERunsigned char tmc_spi_data_tx[4], tmc_spi_data_rx[4];void to_4_byte_binary(long *arg){	long tmp;	int i;	tmp = *arg;	for(i=0; i<32; i++)	{		if((i%8)==0)		{			printf(" ");		}		printf("%u",(int)((tmp&0x80000000)>>31));		tmp=tmp<<1;	}	printf("\n");}void to_1_byte_binary(char *arg){	int i;	for(i=0; i<8; i++)	{		printf("%u",(int)(((*arg)&0x80)>>7));		(*arg)=(*arg)<<1;	}	printf("\n");}void tmc_tranceive(unsigned char preamble, unsigned long data) {#ifdef SWITCH_BYTE_ORDER  tmc_spi_data_tx[0] = data & 0x0000FF;  tmc_spi_data_tx[1] = (data & 0x00FF00) >>  8;  tmc_spi_data_tx[2] = (data & 0xFF0000) >> 16;  tmc_spi_data_tx[3] =  preamble;  to_4_byte_binary((long*)tmc_spi_data_tx);#else  tmc_spi_data_tx[0] = preamble;  tmc_spi_data_tx[1] = (data & 0xFF0000) >> 16;  tmc_spi_data_tx[2] = (data & 0x00FF00) >>  8;  tmc_spi_data_tx[3] =  data & 0x0000FF;  to_4_byte_binary((long*)tmc_spi_data_tx);#endif}inline void tmc_writeRAM(unsigned char address, unsigned long data) {  tmc_tranceive(TMC_RAM | (address<<1) | TMC_WRITE, data);}inline void tmc_writeREG(unsigned char address, unsigned long data) {  tmc_tranceive(TMC_REG | (address<<1) | TMC_WRITE, data);}inline void tmc_readRAM(unsigned char address) {  tmc_tranceive(TMC_RAM | (address<<1) | TMC_READ, 0l);}inline void tmc_readREG(unsigned char address) {  tmc_tranceive(TMC_REG | (address<<1) | TMC_READ, 0l);}int main(int argc, char* argv[]){	//0xB1998D ist 101100001 100110001 100011001	tmc_writeREG(0xD, 0x123);	return 0;}