国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ABOV 程序 - 移動監測運動平臺控制

XUI / 1112人閱讀

摘要:提示以下是本篇文章正文內容,下面案例可供參考一是什么半導體在年自韓國分離出來,有超過年單片機領域耕耘經驗。

文章目錄

提示:ABOV 實現多機通信控制,來實現移動監測運動平臺的控制



前言

提示:這里可以添加本文要記錄的大概內容:
例如:隨著人工智能的不斷發展,機器學習這門技術也越來越重要,很多人都開啟了學習機器學習,本文就介紹了機器學習的基礎內容。


提示:以下是本篇文章正文內容,下面案例可供參考

一、ABOV是什么?



ABOV半導體在2006年自韓國HYNIX分離出來,有超過20年單片機領域耕耘經驗。ABOV半導體有單片機和標準IC另類產品

二、應用設定

1.應用場景設定

產品用于自動測試人體感應PIR對不同距離角度下感應效果

2.所使用的方法

1.Inventor 3維建模
2.ABOV單片機作為機械控制IC

IO輸出 AD檢測 串口通信

3.STM32單片機 作為系統終端控制IC
4.C# 作為電腦終端控制軟件

3.最終實現的設定

實現對兩臺運動機構的控制,并完成機構上待測產品的測試 并將數據回傳到多路終端

二、使用步驟

1.完成實驗結構三維建模

主機構建模如下:


從機構建模如下:

兩臺構安裝過后如下:

2.完成通信模式的構想

代碼如下(示例):

3.完成從機調試

從機調試如下:

3.完成主機調試

三、從機制作

1.效果圖

ABOV移動小車從機

ABOV從機移動效果

2.原理圖


3.程序

代碼源碼下載---->

代碼生成器配置:
Keil完成代碼后續:

OCD2完成仿真:

1.主程序

main.c:

//======================================================// Main program routine// - Device name  : MC95FG308// - Package type : 28SOP//======================================================// For XDATA variable : V1.041.00 ~#define		MAIN	1// Generated    : Fri, Nov 12, 2021 (21:10:31)#include	"MC95FG308.h"#include	"func_def.h"#include	"IO_code.h"#include	"usart_code.h"#include	"function_code.h"void main(){	cli();          	// disable INT. during peripheral setting	port_init();    	// initialize ports	clock_init();   	// initialize operation clock	ADC_init();     	// initialize A/D convertor	Timer0_init();  	// initialize Timer0	UART_init();    	// initialize UART interface	sei();          	// enable INT.		// TODO: add your main code here	placeX_now = 0;	    //上電默認為0 坐標吧	while(1){   	   fn_function_check();  //在這里進行處理函數	   // TODO: add other code here	}}//======================================================// interrupt routines//======================================================void INT_USART0_Rx() interrupt 6{	// USART0 Rx interrupt	// TODO: add your code here	dataR0  = UART_read(0);	fn_check_usart(0,&dataR0);		//UART_write(0,dataR0);}void INT_USART1_Rx() interrupt 10{	// USART1 Rx interrupt	// TODO: add your code here}void INT_Timer0() interrupt 12{	// Timer0 interrupt	// TODO: add your code here	Led_Time_Change(100);}void INT_ADC() interrupt 18{	// ADC interrupt	// TODO: add your code here}void INT_BIT() interrupt 22{	// BIT interrupt	// TODO: add your code here}//======================================================// peripheral setting routines//======================================================unsigned char UART_read(unsigned char ch){	unsigned char dat;		if (ch == (unsigned char)0) {	// UART0		while(!(USTAT & 0x20));	// wait		dat = UDATA;   	// read	}	if (ch == (unsigned char)1) {	// UART1		while(!(USTAT1 & 0x20));	// wait		dat = UDATA1;  	// read	}	return	dat;}unsigned int ADC_read(){	// read A/D convertor	unsigned int adcVal;		while(!(ADCM & 0x10));	// wait ADC busy	adcVal = (ADCRH << 8) | ADCRL;	// read ADC	ADCM &= ~0x40;  	// stop ADC	return	adcVal;}void ADC_init(){	// initialize A/D convertor	ADCM = 0x00;    	// setting	ADCM2 = 0x04;   	// trigger source, alignment, frequency	IEN3 |= 0x01;   	// enable ADC interrupt}void ADC_start(unsigned char ch){	// start A/D convertor	ADCM = (ADCM & 0xf0) | (ch & 0xf);	// select channel	ADCM |= 0x40;   	// start ADC}void Timer0_init(){	// initialize Timer0	// 8bit timer, period = 9.984000mS	T0CR = 0x96;    	// timer setting	T0DR = 0xE9;    	// period count	IEN2 |= 0x01;   	// Enable Timer0 interrupt	T0CR |= 0x01;   	// clear counter}void UART_init(){	// initialize UART interface	// UART0 : ASync. 9615bps N 8 1	UCTRL2 = 0x02;  	// activate UART0	UCTRL1 = 0x06;  	// Async/Sync, bit count, parity	UCTRL2 |= 0xAC; 	// interrupt, speed	//UCTRL2 |= 0x10;	// enable line when you want to use wake up in STOP mode	UCTRL3 = 0x00;  	// stop bit	UBAUD = 0x4D;   	// baud rate	// UART1 : ASync. 9615bps N 8 1	UCTRL12 = 0x02; 	// activate UART1	UCTRL11 = 0x06; 	// Async/Sync, bit count, parity	UCTRL12 |= 0xAC;	// interrupt, speed	//UCTRL12 |= 0x10;	// enable line when you want to use wake up in STOP mode	UCTRL13 = 0x00; 	// stop bit	UBAUD1 = 0x4D;  	// baud rate	IEN1 |= 0x11;   	// enable UART interrupt}void UART_write(unsigned char ch, unsigned char dat){	if (ch == (unsigned char)0) {	// UART0		while(!(USTAT & 0x80));	// wait		UDATA = dat;   	// write	}	if (ch == (unsigned char)1) {	// UART1		while(!(USTAT1 & 0x80));	// wait		UDATA1 = dat;  	// write	}}void clock_init(){	// external clock	cli();	IEN3 |= 0x10;   	// Enable BIT interrupt	sei();	BCCR = 0x05;    	// 16msec BIT	SCCR = 0x81;    	// External clock	PCON = 0x03;    	// STOP1 mode entry	_nop_();	_nop_();	_nop_();	_nop_();	_nop_();	SCCR &= ~0x80;  	// clock changed	IEN3 &= ~0x10;  	// Disable BIT interrupt}void port_init(){	// initialize ports	//   3 : AN4      in  	//   8 : P10      out 	//   9 : P11      out 	//  16 : TxD1     out 	//  17 : RxD1     in  	//  19 : XIN      in  	//  20 : XOUT     out 	//  25 : TxD0     out 	//  26 : RxD0     in  	//  28 : P31      out 	P0IO = 0xE7;    	// direction	P0PU = 0x08;    	// pullup	P0OD = 0x00;    	// open drain	P0DB = 0x00;    	// debounce	P0   = 0x00;    	// port initial value	P1IO = 0xFB;    	// direction	P1PU = 0x00;    	// pullup	P1OD = 0x00;    	// open drain	P1DB = 0x00;    	// debounce	P1   = 0x00;    	// port initial value	P2IO = 0xFE;    	// direction	P2PU = 0x00;    	// pullup	P2OD = 0x00;    	// open drain	P2DB = 0x00;    	// debounce	P2   = 0x00;    	// port initial value	P3IO = 0x7F;    	// direction	P3PU = 0x80;    	// pullup	P3OD = 0x00;    	// open drain	P3DB = 0x00;    	// debounce	P3   = 0x00;    	// port initial value	// Set port function	PSR0 = 0x10;    	// AN7 ~ AN0	PSR1 = 0x00;    	// I2C, AN14 ~ AN8}

1.IO程序

IO_code.h :

#ifndef		_IO_CODE_#define		_IO_CODE_#include	"MC95FG308.h"#include	"func_def.h"#define 	TIME_Goforward  	6	 //時間為前進控制時間#define 	TIME_GoBACK_Long    18	 //時間為回退長控制時間#define 	TIME_GoBACK_short   6	 //時間為回退短控制時間#define 	IO_Goforward  P11  //IO口為前進控制口#define 	IO_GoBACK	  P10  //IO口為后退控制口unsigned int fn_IO_run(unsigned char distance);	      //前進控制程序unsigned int fn_IO_goback(unsigned char back_time);   //后退控制程序void delay_ms(unsigned int count);void delay_us(unsigned int count);void delay_s(unsigned int count);void Led_Time_Change(unsigned int count);void Led_flash(void);#endif	  

IO_code.c :

#include	"IO_code.h"#include	"usart_code.h" #include	"function_code.h"/************************************************************* @brief  * unsigned int fn_IO_run(unsigned char distance)* @param  * @retval *************************************************************/ unsigned int fn_IO_run(unsigned char distance){	  // 前進控制程序    unsigned  char xdistance;	if(distance<=placeX_MIN){return 0;}	      // 前進不能小于最小位移坐標	for(xdistance=0 ;xdistance<distance ;xdistance++ ){		IO_Goforward = 1 ;		delay_s(1);		IO_Goforward = 0 ;			   //循環前進	 	delay_s(TIME_Goforward);		if(bdata_effect==1){		    //中通接收到新的指令就出去了		   return xdistance; 		}	}	return xdistance;}/************************************************************* @brief  * unsigned int fn_IO_goback(unsigned char back_time)* @param  * @retval *************************************************************/ unsigned int fn_IO_goback(unsigned char back_time){	  	  // 后退控制程序	IO_GoBACK = 1 ;	delay_s(1);	IO_GoBACK = 0 ;	delay_s(back_time);	if(bdata_effect==1){	  return 2; 	}	return 0;} /************************************************************* @brief  * void Led_Time_Change(unsigned int count)* @param  * @retval *************************************************************/ unsigned char count_Ledtime;void Led_Time_Change(unsigned int count){  //中斷定時器里IO閃爍	if(count_Ledtime++>count){		count_Ledtime=0;		P31 = ~P31;		}	}/************************************************************* @brief  * void Led_flash(void)* @param  * @retval *************************************************************/ void Led_flash(void){    P31 = ~P31;	delay_ms(100);	P31 = ~P31;	delay_ms(100);	P31 = ~P31;}/************************************************************* @brief  * Delay  函數* @param  * @retval *************************************************************/ void delay_us(unsigned int count){  unsigned int a=0 ;   for(a=0;a<count;a++){		;		  }	}//-----------------------------------------------------void delay_ms(unsigned int count){  unsigned int a=0,b=0;   for(a=0;a<count;a++){	delay_us(400);			  } }void delay_s(unsigned int count){  unsigned int a=0,b=0;   for(a=0;a<count;a++){	delay_ms(1100);		if(bdata_effect==1){		return; 	}		  }	}

2.USAR串口程序

usart_code.c:

#ifndef		_USART_CODE_#define		_USART_CODE_#include	"MC95FG308.h"#include	"func_def.h"extern volatile unsigned char bdata_begin  ;extern volatile unsigned char  bdata_judge ;extern volatile unsigned char  bdata_effect ;extern volatile unsigned char  bdata_error ;  #define _DATA_GET  0xAB #define _DATA_GET_CODE  4#define _DATA_GET_MODE  7 #define   U_Scom_car    0xBA#define   U_Scom_code1   0x01	  //開始#define   U_Scom_code2   0x02	  //暫停#define   U_Scom_code3   0x03	  //位移到目標坐標附件 #define   U_Scom_code4   0x04	  //開始測試目標坐標#define   U_Scom_code5   0x05	  //返回起點#define   U_Scom_code6   0x06	 //復位#define   U_Scom_code7   0x07	 //故障extern unsigned char UART_SENDCODE[_DATA_GET_CODE];extern unsigned char dataR0 ;extern unsigned char UART_GETcommand_car;  //串口最終的設備地址extern unsigned char UART_GETcommand_code;  //串口最終的命令extern unsigned char UART_GETcommand_X;  //串口最終的X命令extern unsigned char UART_GETcommand_Y;  //串口最終的Y命令   void fn_usart_senddata(unsigned char ch, unsigned char *dat ,unsigned int num );   void fn_check_usart(unsigned char ch,unsigned char *dataget);void fn_usart_sendcommande(unsigned char com_car, unsigned char com_code ,unsigned char com_X , unsigned char com_Y ); #endif	  

usart_code.c :

#include	"usart_code.h"#include	"IO_code.h"volatile unsigned char bdata_begin  ;volatile unsigned char  bdata_judge ;volatile unsigned char  bdata_effect ; //---------------------- 接收對應 碼值 ---------------------------------const  unsigned char UART_GETCODE[_DATA_GET_MODE][_DATA_GET_CODE]
            
                     
             
               

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/123902.html

相關文章

  • 云計算、物聯網崛起 智慧校園離不開智能照明系統

    摘要:智能照明控制系統的出現可以完美的解決以上問題,照明系統可以針對學生的活動規律人流量等特定的環境和條件自動實現開關和調光功能,。在云計算物聯網以及移動互聯網等新興技術不斷崛起的大背景下,智慧校園的建設成為實現教育新發展的必要途徑。  每當夜幕降臨,校園里的路燈都會自動亮起氤氳的光芒,透過樹葉的縫隙灑下斑駁的光影,學生們腳下踩著碎碎的亮光,聊著身邊的軼聞,傳頌著城市的故事....每一盞路燈照亮了...

    騫諱護 評論0 收藏0
  • 不可思議的純 CSS 實現鼠標跟隨效果

    摘要:原理以上面的為例子,要使用實現鼠標跟隨,最重要的一點就是如何實時監測到當前鼠標處于何處,其實很多效果,都離不開障眼法二字。 直接進入正題,鼠標跟隨,顧名思義,就是元素會跟隨著鼠標的移動而作出相應的運動。大概類似于這樣: showImg(https://segmentfault.com/img/remote/1460000018405114); 通常而言,CSS 負責表現,JavaScr...

    sshe 評論0 收藏0
  • 不可思議的純 CSS 實現鼠標跟隨效果

    摘要:當然,本文的重點,就是介紹如何在不借助的情況下使用來模擬實現一些鼠標跟隨的行為動畫效果。原理以上面的為例子,要使用實現鼠標跟隨,最重要的一點就是如何實時監測到當前鼠標處于何處,其實很多效果,都離不開障眼法二字。直接進入正題,鼠標跟隨,顧名思義,就是元素會跟隨著鼠標的移動而作出相應的運動。大概類似于這樣: 通常而言,CSS 負責表現,JavaScript 負責行為。而鼠標跟隨這種效果屬于行為...

    phpmatt 評論0 收藏0
  • 啟明云端分享:小米智能手環主控的秘密

    摘要:年末,年即將走進尾聲,忙碌了一年準備給家里人買一份禮物,這些天看了很多產品,最終選定了小米智能手環。 年末,2021年即將走進尾聲,忙碌了一年準備給家里人買一份禮物...

    wpw 評論0 收藏0
  • 《Android惡意代碼分析與滲透測試》作者趙涏元:Android平臺安全問題的特點和價值

    摘要:趙涏元的最新作品惡意代碼分析與滲透測試詳細地講解了惡意代碼在各種渠道的散播方式,并針對開發者和用戶介紹如何應對此類威脅。問您撰寫惡意代碼分析與滲透測試的初衷是什么我每次寫書的時候,最先考慮的是這個主題是否是韓國國內已有論述的。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/206074 趙涏元目前在KB投資證券公...

    venmos 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<