⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcbsp.c

📁 rt 7520采集卡 linux驱动源代码
💻 C
字号:
/*	FILE NAME: mcbsp.c	FILE DESCRIPTION:		Demonstrates usage of the Multi-channel Buffered Serial Port		(McBSP).		The following connections must be made before running this		program:			* P4 pin 4 ==> P4 pin 8			* P4 pin 7 ==> P4 pin 9			* P4 pin 3 ==> P4 pin 5 & P3 pin 1			* CN2 pin 1 ==> CN2 pin 23			* CN2 pin 31 ==> CN2 pin 32			* CN2 pin 33 ==> CN2 pin 34			* CN2 pin 35 ==> CN2 pin 36			* CN2 pin 37 ==> CN2 pin 38			* CN2 pin 39 ==> CN2 pin 40			* CN2 pin 41 ==> CN2 pin 42			* CN2 pin 43 ==> CN2 pin 44			* CN2 pin 45 ==> CN2 pin 46		The output sine wave appears on CN2 pin 21.	PROJECT NAME: Linux DM7520 Driver, Library, and Example Programs	PROJECT VERSION: (Defined in README.TXT)	Copyright 2004 RTD Embedded Technologies, Inc.  All Rights Reserved.*/#include <stdio.h>	//printf#include <stdlib.h>	//exit#include <errno.h>	//errno#include <math.h>	//sin#include <slang/slang.h>	//anykey#include "dm7520_library.h"//suggests to press any key and returns number of key pressedint anykey(void) {    int x;    printf("\nPress any key to continue\n");	    SLang_init_tty(-1, 1, 1);    x = SLang_getkey();    SLang_reset_tty();        return x;}int main(int argc, char* argv[]){ FILE * infile; int board_idx; int i = 0; float actual=0.; int ret; if (argc<2) {fprintf(stderr,"Usage: %s <device>\n",argv[0]);exit(1);} if (NULL==(infile=fopen(argv[1],"r")))   {    fprintf(stderr,"Cannot open file, errno=%d\n",errno);    perror("Error is");    exit(2);   } board_idx = fileno(infile);		// get device handler	 ret = InitBoard7520(board_idx);	// init board	// The A to D conversion is triggered by the pacer clock.	//	The A to D data will be sent out over the serial port.	SetChannelGain7520(board_idx, 0, 0, 0, 0, 0);  // Load Channel Latch.	EnableCGT7520(board_idx,0 );	//	Enable Channel Gain Table	EnableCGTDigital7520(board_idx, 0);	// Disable Digital Table	SetDIO0Direction7520(board_idx, 0);	// set port 0 to input	SetDIO1Direction7520(board_idx, 1);	// set port 1 to output// as far DIO0 and DIO1 connected to each other writing 0 to port1 will set bit D2 of//	input Data marker to 0 so McBSPDA will write to DA1	WriteDIO17520(board_idx, 0);	 SetPacerClock7520(board_idx, PCLK_START_SOFTWARE, PCLK_STOP_SOFTWARE,			PCLK_NO_REPEAT, PCLK_INTERNAL, 10000);	 SetConversionSelect7520(board_idx, ADC_START_PCLK);   // Conversion Select =  PCLK	ClearADFifo7520(board_idx); // Clear the fifo	// The D to A conversion is triggered by the Syncbus.	//	When the syncbus is pulsed, the D to A will send out the data	//	on the serial port.	// Disable SyncBuses on DM7520	EnableSbus07520(board_idx, 0);	EnableSbus17520(board_idx, 0);	EnableSbus27520(board_idx, 0);	// DM7520 McBSP setup	McBSPADControl7520(board_idx, 1);	// Enable McBSP A/D FIFO Control	McBSPDAControl7520(board_idx, 1);	// Enable McBSP D/A FIFO Control	 // start	ClearADFifo7520(board_idx);	ClearDAC1Fifo7520(board_idx);	ClearDAC2Fifo7520(board_idx);// Load Sine wave to DAC2 FIFO	 for (i=0;i<1024;i++)	 {		 LoadDAC27520(board_idx,2047.0 * sin(i*(2*M_PI/1024)));	 }	// D/A setup	SetupDAC7520(board_idx, DM7520_WRITE_DA1, AOUT_BIP5, DAC_CYCLE_SINGLE, DAC_START_SBUS0);	 ret = SetDACRateF7520(board_idx,100000.,0,&actual);	 if (ret!=0) printf("Error in SetDACRateF7520 ret=%d\n", ret);	 printf("Dac rate = %10.3f\n", actual);	 SetupDAC7520( board_idx, DM7520_WRITE_DA2, AOUT_BIP5, DAC_CYCLE_MULTI, DAC_START_SOFTWARE );	 SetDAC2Start7520(board_idx,DAC_START_DAC_CLK);	DACClockFreeRun7520(board_idx,1);	EnableSbus07520(board_idx, 1);	SetSbus0Source7520(board_idx,SBUS0_UTC2);	SetUtc2Clock7520 (board_idx, CUTC2_8MHZ);	SetupTimerCounter7520(board_idx,TC_UTC2,M8254_SQUARE_WAVE,10);//was 10	 StartPacer7520(board_idx);	 // stop	 anykey();	 StopPacer7520(board_idx);	 SetDAC2Start7520(board_idx,DAC_START_SOFTWARE);	McBSPADControl7520(board_idx, 0);	McBSPDAControl7520(board_idx, 0);	EnableSbus07520(board_idx, 0);	 LoadDAC17520(board_idx, 0);   LoadDAC27520(board_idx, 0);    UpdateAllDAC7520(board_idx);   return 0;} // mcbsp_test

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -