日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年07月19日(星期六)

2018年07月19日 | 關(guān)于STM32正交編碼的問(wèn)題

發(fā)布者:jiaohe1 來(lái)源: eefocus關(guān)鍵字:STM3  正交編碼 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

程序的大致思路如下:兩個(gè)定時(shí)器配置為編碼器模式,用于小車(chē)的兩個(gè)輪子編碼脈沖計(jì)數(shù),計(jì)數(shù)器向上或向下計(jì)數(shù)溢出,均在二者的中斷函數(shù)中記錄記錄。還有一個(gè)定時(shí)器用作計(jì)時(shí)用,規(guī)定時(shí)間內(nèi)進(jìn)入中斷,在中斷函數(shù)中對(duì)數(shù)據(jù)進(jìn)行處理。我用的光電碼盤(pán)是100線的,在選擇的計(jì)數(shù)模式下,轉(zhuǎn)一圈產(chǎn)生400個(gè)計(jì)數(shù)脈沖。程序如下:

double first_cnt,second_cnt,encoder_timer_overflow_sample;
static volatile double encoder_timer_overflow;
double rotor_speed = 0;
unsigned char i = 0;

//first_cnt是第一次讀計(jì)數(shù)器的值,second_cnt是第二次讀計(jì)數(shù)器的值,encoder_timer_overflow記錄計(jì)數(shù)器的溢出次數(shù)(不管是向上溢出還是向下溢出)

int main(void) 
{
 Myusart_Init();
 Encoder_Init();
 
 first_cnt = TIM_GetCounter(ENCODER_TIMER); //第一次讀取編碼器計(jì)數(shù)值
 encoder_timer_overflow = 0;//初始時(shí)令編碼器計(jì)數(shù)溢出次數(shù)為零,認(rèn)為一個(gè)處理周期內(nèi)其值小于double類的極值
 while(1);
 
}

double Get_Rotor_Speed(void)//double Get_Rotor_Speed()
{
 double delta_cnt;//記錄前后讀取計(jì)數(shù)器計(jì)數(shù)器計(jì)數(shù)的差值
 double w_rotor,line_speed,circle_number = 0;
 
 second_cnt = TIM_GetCounter( ENCODER_TIMER );//讀取編碼器計(jì)數(shù)值
 encoder_timer_overflow_sample = encoder_timer_overflow;//從encoder_timer_overflow中讀取溢出次數(shù)
 
 if ( (ENCODER_TIMER->CR1 & TIM_CounterMode_Down) == TIM_CounterMode_Down )  
 {
 // encoder timer down-counting  編碼器是向下計(jì)數(shù),
  delta_cnt = ( second_cnt - first_cnt - encoder_timer_overflow_sample * (4 * ENCODER_PPR) );
 // a negetive value計(jì)算前后兩次讀取的計(jì)數(shù)總差值
 }
 else  
 {
 //encoder timer up-counting編碼器向上計(jì)數(shù)
  delta_cnt = ( second_cnt - first_cnt + encoder_timer_overflow_sample  * (4 * ENCODER_PPR) );
  // a positive value              
 }
 
 first_cnt = second_cnt;//保存第二次的讀取值,以便下一次使用
 encoder_timer_overflow = 0;//溢出次數(shù)清零
 
 circle_number = delta_cnt / 400.0 / 98.777946;//計(jì)算兩次讀取時(shí)間內(nèi)車(chē)輪轉(zhuǎn)了多少圈
 
 //400  :  the count value of CNT for rotor  rotate a circle
 //98.777946  :  the decrease speed rate of motor 減速箱的減速比,delta是轉(zhuǎn)子所轉(zhuǎn)的圈數(shù)
 
 w_rotor = ( circle_number * 2 * 3.141592 ) / 0.03;//計(jì)算角速度,2*pi*轉(zhuǎn)的圈數(shù)/計(jì)數(shù)時(shí)間(為0.03s)
 
 //the wheel's w_rotor ,calculate time is 1 minute
 //circle_number * 2 * 3.141592    delta_angle  by radian
 //w_rotor      unit:  degree by radian per second
 
 line_speed = ( w_rotor * 64.68 / 2.0 ) / 10.0;//計(jì)算線速度,v=w*r車(chē)輪直徑64.68mm,除以10轉(zhuǎn)化為cm
 
 //the wheel's line_speed, unit: cm per seconds
 //64.68 / 2.0 mm: radius of wheel
 //printf ( " w_rotor=%8lf       line_speed =%8lf\r\n ",w_rotor,line_speed );  
 
 return line_speed;
}

void TIM3_IRQHandler(void)//定時(shí)器3定時(shí)器0.03秒,在中斷函數(shù)中進(jìn)行平均值濾波。
{   
  if ( i<8 )
 {
  rotor_speed += Get_Rotor_Speed();//assume rotor_speed will not larger than double_max
  i++;
 }
 else
 {
  rotor_speed /= i; //讀取8次值,然后取平均值
  printf ( " a%8lf\r\n ",rotor_speed  * 100 );//a, +500 used for OSC 

  //clear to 0 for next use
  i = 0;
  rotor_speed = 0;//清零,以備下次使用
 } 
 
 /* Clear the interrupt pending flag */
 TIM_ClearFlag(TIM3,TIM_FLAG_Update);
}



關(guān)鍵字:STM3  正交編碼 引用地址:關(guān)于STM32正交編碼的問(wèn)題

上一篇:STM32定時(shí)器---正交編碼器模式詳解
下一篇:STM32F4XX 采集編碼器的溢出處理

推薦閱讀

其實(shí)SD卡的初始化以及FAT文件系統(tǒng)也移植到了我的板子上面。但是我要存一張BMP的照片,不知道為啥,每次存儲(chǔ)150kb進(jìn)入TF卡的時(shí)候,時(shí)間不確定。有時(shí)幾百毫秒。有時(shí)要好幾秒。導(dǎo)致我完全不能夠?qū)崟r(shí)保存一些圖片。導(dǎo)致系統(tǒng)卡機(jī)。而且在FAT文件系統(tǒng)下,還不能夠使用DMA釋放CPU。下面貼出 TF卡初始化例程,參考來(lái)自于正點(diǎn)原子源碼:u8 SD_Init(void){ u8...
美國(guó)機(jī)器人密度現(xiàn)在是中國(guó)的兩倍多 機(jī)器人在美國(guó)的銷(xiāo)量創(chuàng)下了近3.8萬(wàn)臺(tái)的新高。目前,美國(guó)制造業(yè)的機(jī)器人密度是中國(guó)的兩倍多,在全球排名第七。 機(jī)器人密度在美國(guó)制造業(yè)達(dá)到每萬(wàn)名員工200臺(tái),而在中國(guó)(2017年)為97臺(tái)。美國(guó)國(guó)內(nèi)和全球市場(chǎng)的自動(dòng)化生產(chǎn)趨勢(shì)是美國(guó)機(jī)器人安裝的主要推動(dòng)力。一般工業(yè)行業(yè),特別是飲食業(yè)(+64%)及塑料和化學(xué)產(chǎn)品行業(yè)(+...
在上篇博客簡(jiǎn)單介紹DMA后,我將在這里詳細(xì)介紹下一個(gè)簡(jiǎn)單的DMA傳輸例子,即將FLASH中的數(shù)據(jù)傳輸?shù)絊RAM中,是一種MtoM(存儲(chǔ)器傳輸?shù)酱鎯?chǔ)器)的方式。首先按老步驟DMA的點(diǎn)C和點(diǎn)H文件,然后在點(diǎn)C種定義一個(gè)32位常量數(shù)組SRC自動(dòng)cu存放在FLASH中,然后定義一個(gè)對(duì)應(yīng)的DST數(shù)組在SRAM中(一般變量都在SRAM中)。然后是初始化步驟,詳細(xì)代碼如下:具體實(shí)現(xiàn)功能就是...
碩果豐碩 第九屆中國(guó)(西部)電子信息博覽會(huì)勝利閉幕2021年7月17日,第九屆中國(guó)(西部)電子信息博覽會(huì)在成都世紀(jì)城新國(guó)際會(huì)展中心圓滿落下帷幕。本屆西部電博會(huì)為期三天,展覽面積超33000平方米,參展企業(yè)高達(dá)700余家,參觀人次近5萬(wàn),在展商數(shù)量、展區(qū)面積、觀眾規(guī)模、論壇專業(yè)性等方面均創(chuàng)新高。 作為西部地區(qū)電子信息產(chǎn)業(yè)重要的展示和交流平臺(tái),第九屆...

史海拾趣

問(wèn)答坊 | AI 解惑

常見(jiàn)的嵌入式操作系統(tǒng)

DOS     微軟一開(kāi)始選用了派特森的Q-DOS “QUICK AND DISK OPERATING SYSTEM ”為基礎(chǔ)然后再擴(kuò)充功能而成 MS-DOS,主要是采用由IBM 提供的使用8088 微處理器的計(jì)算機(jī)作開(kāi)發(fā)平臺(tái),它是以16 字節(jié)單人單工操作系統(tǒng),特別適合一些功能簡(jiǎn)單 ...…

查看全部問(wèn)答∨

請(qǐng)教關(guān)于PXA270喚醒源的設(shè)置

專家好:    我的PDA前兩天在公司測(cè)試部門(mén)發(fā)現(xiàn),按鍵進(jìn)入深度休眠后,不能馬上按鍵喚醒,只有等5~6秒(大約值)后才能馬上喚醒 我的按鍵休眠是設(shè)置的GPIO0,喚醒源也是GPIO0 具體的設(shè)置如下:          &nbs ...…

查看全部問(wèn)答∨

wince5.0的中斷向量地址問(wèn)題

shuiyan 大哥你好!  小弟最近在搞OAL里的中斷函數(shù)OALTimerInit遇到個(gè)問(wèn)題,是這樣的:  我在private下的armtrap.s里發(fā)現(xiàn)了中斷的異常跳轉(zhuǎn)表 VectorInstructions         ldr     pc, [p ...…

查看全部問(wèn)答∨

如何在win ce下設(shè)置圖片的3D凸起效果?(C#) 謝謝了!

如何在win ce下設(shè)置圖片的3D凸起效果?(C#) 謝謝了!…

查看全部問(wèn)答∨

touch panel驅(qū)動(dòng) 奇怪問(wèn)題!

本人把wince6.0下的DeviceEmulator改到我的2440的開(kāi)發(fā)板上運(yùn)行,因?yàn)镈eviceEmulator是基于2410的,現(xiàn)在改到2440下改動(dòng)也不是太大, 目前wince6.0的桌面已經(jīng)可以顯示出來(lái)了,但是觸摸屏卻一直動(dòng)不了,后來(lái)跟蹤發(fā)現(xiàn)觸摸屏驅(qū)動(dòng)已經(jīng)加載,而且第一次點(diǎn) ...…

查看全部問(wèn)答∨

不好意思,問(wèn)一下這個(gè)問(wèn)題:-sh: ./helloworld: not found

我是一名初學(xué)者,今天終于完成了博創(chuàng)S3C2410上Linux 2.6.22的移植,網(wǎng)卡,文件系統(tǒng)都能正常使用,感覺(jué)蠻有成就感的。 但如今這個(gè)問(wèn)題不知道如何解決了: 用編譯內(nèi)核和Busybox 1.5.1的編譯器編譯了一個(gè)helloworld,在開(kāi)發(fā)板上用NFS掛載上,運(yùn)行./hello ...…

查看全部問(wèn)答∨

全球首個(gè)太空機(jī)器人

$(\'swf_vSx\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://www.tudou.com/v/IJy11e9LXmk/v.swf\'), \'quality\', ...…

查看全部問(wèn)答∨

Quartus II的用法

我寫(xiě)了兩段不同的verilog代碼來(lái)實(shí)現(xiàn)同一個(gè)功能,現(xiàn)在我想比較哪個(gè)代碼在FPGA上跑的更快,我在Quartus II里如何看出來(lái)呢,請(qǐng)各位指導(dǎo)我一下,謝謝?!?

查看全部問(wèn)答∨

jlink v8識(shí)別不了LPC2148

用jlink V8給目標(biāo)板提供3.3V電壓,就是把jlink 里面的跳線帽插到3.3V pin上然后連接 2148,一直這樣提示,試了兩個(gè)2148了,都是這樣的提示我如果用目標(biāo)板自己的電源,也是同樣的提示Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFullVTarget = 3.300 ...…

查看全部問(wèn)答∨

紅外接收頭的問(wèn)題

目的:制作一個(gè)模塊,該模塊能檢測(cè)紅外發(fā)射管發(fā)出的紅外線,波長(zhǎng)為940nm,紅外接收頭型號(hào)為IRM-3638,當(dāng)有接收頭接收到紅外光,那么模塊上的LED燈就亮 我畫(huà)的電路圖如下:     但是我的板子沒(méi)有達(dá)到預(yù)期目標(biāo),LED燈不亮,接收頭沒(méi)有 ...…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved