更高效處理 micro second 的方式…
以 STM32 為例…
{
HAL_IncTick();
sys_tick += (SysTick->LOAD + 1);
}
unsigned long micros_ticks(void)
{
Get micro second...
micros = micros_ticks()/(SysTick->LOAD + 1)
microsxconstant = micros_ticks()
blog this, blog that, blog everything.
blog here, blog there, blog everywhere.
更高效處理 micro second 的方式…
以 STM32 為例…
micros = micros_ticks()/(SysTick->LOAD + 1)
microsxconstant = micros_ticks()
ArchLinux 安裝筆記
使用 vm 練習 archlinux 安裝…
sudo kmutil load -p '/Library/Application Support/VirtualBox/VBoxDrv.kext'
The global chip shortage has turned me into a multi-platform firmware developer.
Zero code modifications.
STM / MM32 / Nuvotone
問題 :
Google Drive 雲端硬碟檔案串流 在中文環境下預設是「G:\我的雲端硬碟」,磁碟代號可改,但「我的雲端硬碟」卻無法修改,導致有些「非多國語應用程式」無法正確指到檔案路徑。
解決 :
使用 Windows 內建虛擬磁碟指令將 指定目錄變成一顆磁碟機…
subst x: G:\我的雲端硬碟
兩個未知規格的熱敏電阻(10K、20K或50K…未知),熱敏電阻A、熱敏電阻B
如何驗證二顆不同的熱敏電阻規格是一致的?
原來是一個簡單的分壓問題…
測試一、正電-->熱敏電阻A--求分壓a-->熱敏電阻B--負電
測試二、正電-->熱敏電阻B--求分壓b-->熱敏電阻A--負電
測試環境從 100°C~0°C,分壓a 需恆等於分壓b
即可初步判定二顆熱敏電阻規格是一致的
void DiscoveryAll( void ) { /// unmute all devices : RDM_UnMute() /// implement DISCOVERY_COMMAND:DISC_UNMUTE RDM_UnMute( 0xFFFFFFFFFFFF );
/// discovery full range Discovery( 0, 0xFFFFFFFFFFFE ); }
void Discovery( long long low, long long high ) { unsigned char res;
while(1) { /// try to discover devices : RDM_Discovery() /// implement DISCOVERY_COMMAND:DISC_UNIQUE_BRANCH res = RDM_Discovery( low, high );
if( res == TARGET_IDENTIFIED ) /// target identified { /// mute identified target : RDM_Mute() /// implement DISCOVERY_COMMAND:DISC_MUTE RDM_Mute(target); continue; /// repeat } else if( res == DETECT_COLLISIONS ) /// detect collisions { Discovery( low, (low+high)/2 ); /// discovery low bound Discovery( (low+high)/2+1, high ); /// discovery high bound }
return; /// finish } }
更高效處理 micro second 的方式… 以 STM32 為例… __IO unsigned long sys_tick = 0; void SysTick_Handler(void) { HAL_IncTick(); sys_tick += (SysTi...