SlideShare a Scribd company logo
1 of 25
Download to read offline
超威猛應⽤用輔具特⼯工隊! 
STM32F4 for 智慧電動輪 
椅系統Part1 
⺩王尹⾠辰(JackABK) 
2014/08/29 
abkabkabkyes@gmail.com
智慧型電動輪椅系統架構 
USB Morse 
code device 
Nipple 
Tablet PC 
Image display 
Information by EPW 
EPW Control Panal 
STM32F407 
(ARM Cortex-M4) 
Motor 
Controller 
Linear 
Actuator 
BeagleBoard-xM 
(ARM Cortex A8 + C64x DSP dual core) 
Webcam 
Wi-Fi 
Adapter 
Wi-Fi
Embedded System 
主微控制器(BeagleBoard-xM) 次微控制器(STM32F407)
Demo
Filesystem
• The library for 
Smart EPW
static 適⽤用時機?
先了解其特質 
• ⼀一旦宣告後,就⼀一直存放在記憶體,不會隨著函數結束後⽽而釋放 
在函數本體內(in Function Block),⼀一個被宣告為靜態的變數, 
在這⼀一函數被呼叫過程中維持其值不變 
• ⼀一個static函數表⽰示,其可以呼叫的範圍限於該原始碼⽂文件之中 
在⼀一個Block(ie. {...} )內 (但在函數體外),⼀一個被宣告為靜態的變數 
可以被Block內所有的函數存取,但不能被Block外的其它函數存取。 
它是⼀一個區域裡⾯面的全局變數。
• local variable 只在 { } 區間內有效,過了即消失。它 
的壽命就只有在進⼊入區間內到離開區間前。 
• Static local variable 的壽命跟 global variable ⼀一樣 
⻑⾧長,但是只在宣告的 { }區間內是可視的。 
void foo() 
{ 
static count = 0; //只會被初始化⼀一次 
count++; 
}
volatile 
⼀一個指標可以是volatile嗎? 
⼀一個變數可以是const⼜又可以是volatile嗎? 
int square(int *p) 
{ 
return *p * *p; 
} 
問題在哪?
Critical Section 
void Calculate_motor_rpm(void) 
{ 
void EXTI0_IRQHandler(){ 
encoder_left_counter++ ; 
} 
detachInterrupt(EXTI_Line0); /*close external interrupt 0*/ 
! 
rpm_left_motor=encoder_left_counter * (2.0f/3.0f)* 60.0f /500.0f; 
! 
attachInterrupt(EXTI_Line0); 
ISR 
Critical Section
define vs. inline
何時需要⽤用到inline? 
void forward_cmd(uint32_t pwm); 
void backward_cmd(uint32_t pwm); 
void stop_cmd(uint32_t pwm); 
void right_cmd(uint32_t pwm); 
void left_cmd(uint32_t pwm); 
頻繁且⼤大量的被呼叫 
程式碼很短
都⼀一樣是展開,但是展開的時期? 
優點? 
缺點?
#define example
FreeRTOS
FreeRTOS supported 
platforms 
• ARM 
• MSP430 
• AVR 
• C8051F
Showcasing a Selection of 
FreeRTOS Ecosystem Products
Polling in FreeRTOS(1/2) 
xTimerHandle PID_Timers; 
PID_Timers=xTimerCreate(“PID_Algorithm_Polling Start”, 20, pdTRUE, 
( void * ) 1, PID_Algorithm_Polling); 
xTimerStart( PID_Timers, 0 ); 
void PID_Algorithm_Polling(void) 
{ 
…. 
} 
step1 
step3 
step2
Polling in FreeRTOS(2/2) 
in timers.h: 
! 
xTimerCreate ( const char * const pcTimerName, 
const TickType_t xTimerPeriod, 
const UBaseType_t uxAutoReload, 
void * const pvTimerID, 
TimerCallbackFunction_t pxCallbackFunction ); 
more info. xTimerCreate Paremeters
Ultrasonic Signal example! 
for HR-04 
How to access duration time 
using GPIO?
method 1 : 
while (ReadGPIO(echo_pin) == 1) { 
duration++; 
delay_us(1); 
}; 
若被其他執⾏行緒搶⾛走, 
時間計算還會對嗎? 
subtract 
method 2 : Timer 
Timer interrupt(Risig) Timer interrupt(Faling)
Thanks!

More Related Content

Viewers also liked

Stm32f4硬體週邊介紹
Stm32f4硬體週邊介紹Stm32f4硬體週邊介紹
Stm32f4硬體週邊介紹Jack Wang
 
Apache Storm and twitter Streaming API integration
Apache Storm and twitter Streaming API integrationApache Storm and twitter Streaming API integration
Apache Storm and twitter Streaming API integrationUday Vakalapudi
 
Stm32 f4 first touch
Stm32 f4 first touchStm32 f4 first touch
Stm32 f4 first touchBenux Wei
 
STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)Aymen Lachkhem
 
2016-09-eclipse-iot-cf-summit
2016-09-eclipse-iot-cf-summit2016-09-eclipse-iot-cf-summit
2016-09-eclipse-iot-cf-summitMike Milinkovich
 

Viewers also liked (7)

Stm32f4硬體週邊介紹
Stm32f4硬體週邊介紹Stm32f4硬體週邊介紹
Stm32f4硬體週邊介紹
 
Apache Storm and twitter Streaming API integration
Apache Storm and twitter Streaming API integrationApache Storm and twitter Streaming API integration
Apache Storm and twitter Streaming API integration
 
Stm32 f4 first touch
Stm32 f4 first touchStm32 f4 first touch
Stm32 f4 first touch
 
STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)
 
2016-09-eclipse-iot-cf-summit
2016-09-eclipse-iot-cf-summit2016-09-eclipse-iot-cf-summit
2016-09-eclipse-iot-cf-summit
 
présentation STM32
présentation STM32présentation STM32
présentation STM32
 
Introduction to stm32-part1
Introduction to stm32-part1Introduction to stm32-part1
Introduction to stm32-part1
 

Similar to STM32F4 for 智慧型電動輪椅系統Part1

Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)FLASH开发者交流会
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)Shanda innovation institute
 
LinkIt Smart 7688程式開發
LinkIt Smart 7688程式開發LinkIt Smart 7688程式開發
LinkIt Smart 7688程式開發Wei-Tsung Su
 
第三章Ti msp430平台介紹 v3
第三章Ti msp430平台介紹 v3第三章Ti msp430平台介紹 v3
第三章Ti msp430平台介紹 v3冠宇 陳
 
Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Harvey Zhang
 
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽Kito Cheng
 
Deployment instruction trus guard utm 400
Deployment instruction trus guard utm 400Deployment instruction trus guard utm 400
Deployment instruction trus guard utm 400ahnlabchina
 
Raspberry Pi 智能風扇
Raspberry Pi 智能風扇Raspberry Pi 智能風扇
Raspberry Pi 智能風扇艾鍗科技
 
Deployment instruction trus guard utm 500
Deployment instruction trus guard utm 500Deployment instruction trus guard utm 500
Deployment instruction trus guard utm 500ahnlabchina
 
TI702_Android_MID
TI702_Android_MIDTI702_Android_MID
TI702_Android_MIDguestd2ec7f
 
Erlang Optimize
Erlang OptimizeErlang Optimize
Erlang OptimizeFeng Yu
 
[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階Simen Li
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计Hengyi
 
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack FirmwareSimen Li
 
Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發建興 王
 

Similar to STM32F4 for 智慧型電動輪椅系統Part1 (20)

Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
 
LinkIt Smart 7688程式開發
LinkIt Smart 7688程式開發LinkIt Smart 7688程式開發
LinkIt Smart 7688程式開發
 
第三章Ti msp430平台介紹 v3
第三章Ti msp430平台介紹 v3第三章Ti msp430平台介紹 v3
第三章Ti msp430平台介紹 v3
 
Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化Avm2虚拟机浅析与as3性能优化
Avm2虚拟机浅析与as3性能优化
 
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽COSCUP 2014 : open source compiler 戰國時代的軍備競賽
COSCUP 2014 : open source compiler 戰國時代的軍備競賽
 
Step7
Step7Step7
Step7
 
Deployment instruction trus guard utm 400
Deployment instruction trus guard utm 400Deployment instruction trus guard utm 400
Deployment instruction trus guard utm 400
 
Raspberry Pi 智能風扇
Raspberry Pi 智能風扇Raspberry Pi 智能風扇
Raspberry Pi 智能風扇
 
Tcfsh bootcamp day2
 Tcfsh bootcamp day2 Tcfsh bootcamp day2
Tcfsh bootcamp day2
 
Deployment instruction trus guard utm 500
Deployment instruction trus guard utm 500Deployment instruction trus guard utm 500
Deployment instruction trus guard utm 500
 
Godson x86
Godson x86Godson x86
Godson x86
 
TI702_Android_MID
TI702_Android_MIDTI702_Android_MID
TI702_Android_MID
 
LinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorialLinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorial
 
Erlang Optimize
Erlang OptimizeErlang Optimize
Erlang Optimize
 
[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计
 
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee Architecture 與 TI Z-Stack Firmware
 
How to Make a Scanning Drone in Chinese
How to Make a Scanning Drone in ChineseHow to Make a Scanning Drone in Chinese
How to Make a Scanning Drone in Chinese
 
Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發
 

STM32F4 for 智慧型電動輪椅系統Part1