『壹』 合泰單片機中斷問題
一般RISC單片機都採用專用的硬體堆棧,跟51單片機的堆棧結構完全不同(51是使用現有RAM來做堆棧),所以使用RISC單片機時要注意嵌套調用深度。
樓主所提晶元:HT48系列Cost-Effective I/O 型單片機只有兩層硬體堆棧,你做三層嵌套,當然會出現堆棧溢出了。
解決辦法:杜絕>=3層的嵌套(特別注意在中斷中調用)
當然如果你的時間實在是充裕的很,而且硬體餘量夠足,編碼水平也過硬,可以根據堆棧的數據結構試試實現一個軟堆棧
--------------------------------------------------------------------
盡管你的說法有問題,但是看在分的面子上,我還是說一下吧:
既然用到IIC,堆棧消耗肯定很大,2層堆棧的單片機就別指望了,你需要使用堆棧多些的單片機:HT48R02N(6層),HT48R54A(6層),HT48R50A-1(6層),HT48R502(16層),還有很多,具體看Selection Guide
--------------------------------------------------------------------
HT48R08A-1是2層硬體堆棧,如果你嵌套了5-6層,一定會出問題,分析了下,有三種可能:
1.你不是用的HT48R08A-1
2.你的IIC軟體包實際運行時,沒有超出2層調用(盡管最高調用是5-6層,超級隱患!)
3.你判斷的5-6層嵌套,實際只有2層(只有子程序調用和中斷響應才會產生所謂「嵌套」是不是把For循環之類的也算進「嵌套」了呢)
Good luck!
『貳』 合泰背單片機在程序中如何實現按鍵,短按加一,長按快加拜教高手,謝謝先!
合泰背?沒聽過,不過沒所謂,演算法都一樣,按鍵少的時候可以直接掛在IO口上,另一端接地,程序中檢測IO狀態,若有0則說明有按鍵按下,此時變數加1,然後進入鬆手檢測,在其中設置時間標志,若經過幾秒鍾還是按下狀態,則變數一直加,祝成功~~
『叄』 有沒有大神用過合泰的單片機 HT68F002 這款想晶元啊 求個用中斷的程序,自己怎麼弄都不行 幫忙看一下吧
定時器中斷函數里沒清除標志位。增加_stm0f=0
缺少_rstc=0b01010101
『肆』 合泰單片機我編寫了個采ad值的程序,ad值是采出來了,可是ad值范圍整體偏移,AD12位精度
12位的寄存器,怎麼可能大於4095! 假如你用的是雙位元組的變數Value來存儲結果,那麼讀寄存器取值出來後需要屏蔽掉13位之後的數據,即: Value= Value & 0xFFF 。至少不會出現4300的情況。
『伍』 HOLTEK單片機HT32F1765、HT66F50、HT66FU50這幾個晶元能用C語言進行編程嗎
現在單片機基本上都支持吵告鋒C語言編程,盛群的單升晌片機也沒問題的具友陸體使用信息可參考官網。http://www.holtek.com.cn/china/default.htm
『陸』 hope3000一般用於燒錄什麼mcu
合泰單片機編程模擬軟體加燒錄軟體,下載附件安裝就可以了。
『柒』 ht48r063b,屬於單片機么,是哪類的,可以燒錄程序么用哪種東東。
增強 I/O 型系列單片機是一款 8 位具有高性能精簡指令集的單片機,應用相當廣泛。秉承 HOLTEK 單片機具有的低功耗、I/O 靈活、定時器功能、振盪類型可選、休眠和喚醒功能、看門狗和低電壓復位等豐富的功能選項,增強 I/O 型單片機具有極高的性價比,其內部集成了系統振盪器 HIRC,提供三種頻率選擇,不需要增加外部元器件。可以廣泛適用於各種應用,例如工業控制,消費類產品,家用電器子系統控制等。CPU特性:工作電壓:fSYS=4MHz: 2.2V~5.5VfSYS=8MHz: 3.0V~5.5V fSYS=12MHz: 4.5V~5.5V
振盪模式: 外部高頻晶振 – HXT 外部 RC – ERC 內部 RC – HIRC 外部低頻晶振 – LXT
在VDD=5V ,系統頻率為12MHz時,指令周期為0.33µs
3種工作模式:正常,低速,休眠
內部集成 4MHz,8MHz 和 12MHz 振盪器,無需外接元件
看門狗定時器功能
LIRC 振盪用於看門狗時鍾
所有指令都可在 1 或 2 個指令周期內完成
查表指令
63 條功能強大的指令系統
多達 4 層堆棧
位操作指令
低電壓復位功能
提供多種封裝類型
周邊特性
多達 26 個雙向 I/O 口
4 個軟體控制 SCOM 口 1/2 bias LCD 驅動
一個與 I/O 口復用的外部中斷輸入
多達 2 個 8 位可編程定時/計數器,具有溢出中斷和預分頻功能
時基功能
PFD 功能
『捌』 hs2怎麼初始化
HS26Fxx-C_Demo_Code-GPIO初始化函數
功能:GPIO初始化函數
void GPIO_Init(void)
函數聲明
//.h文件聲明***************************************************************************
void GPIO_Init(void); //IO初始化
1
2
1
2
函數定義
//.c文件函數定義****************************************************
/*System initial sub function<<===================================*/
//******************************************************************
void GPIO_Init(void)
{
//P0_IO_init
P0 =0x00u; //-000 0000 ;
P0M =0xFFu; //-111 1111 ;InOut ;0=in / 1=out
P0UR=0x00u; //-000 0000 ;UP_pull ;0=dis / 1=en
P0PD=0x00u; //-000 0000 ;DOWN_pull ;0=dis / 1=en
P0W =0x00u; //0000 0000 ;Wakeup ;0=dis / 1=en
//P1_IO_init
P1 =0x00u; //---- -000 ;
P1M =0xFFu; //---- -111 ;InOut ;0=in / 1=out
P1UR=0x00u; //---- -000 ;UP_pull ;0=dis / 1=en
P1PD=0x00u; //---- -000 ;DOWN_pull ;0=dis / 1=en
P1W =0x00u; //0000 0000 ;Wakeup ;0=dis / 1=en
//P2_IO_init
P4 =0x00u; //0000 0000
P4M =0xFFu; //1111 1111 ;InOut ;0=in / 1=out
P4UR=0x00u; //0000 0100 ;UP_pull ;0=dis / 1=en
P4PD=0x00u; //0000 0000 ;DOWN_pull ;0=dis / 1=en
P4W =0x00u; //0000 0000 ;wakeup ;0=dis / 1=en
//******************************************************
FGIE=0; /* 總中斷使能位 <<======================*/
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
函數調用
GPIO_Init(); //埠初始化
1
1
打開CSDN,閱讀體驗更佳
s3c2440硬體學習筆記----GPIO介面
一、GPIO介紹 GPIO(General Purpose Input Output)意為通用輸入輸出埠,簡單說就是一些引腳,通過它們輸出高低電平或者通過它們讀取引腳高低電平狀態 S3C2440有130個I/O埠,分為A-J共9組:GPA、GPB、、、、GPJ,可以通過設置寄存器來確定某個引腳用於輸入、輸出還是特殊功能。 比如:可以設置GPH6作為輸入、輸出、或者用於串口。 1、通過寄...
繼續訪問
MTK Android7.0 gpio口控制demo
MTK6737平台,暴露底層給上層的設備節點控制介面。簡單的gpio口控制demo。
ioremap_gpio_demo.c
ioremap demo對應博客介紹 https://xuesong.blog.csdn.net/article/details/114156170
用C控制GPIO
http://forum.cubietech.com/forum.php?mod=viewthread&tid=405&reltid=876&pre_thread_id=0&pre_pos=6&ext=CB 用C控制GPIO的代碼[可以直接看CPU佔用率了] http://forum.cubietech.com/forum.php?mod=viewthread&tid=405 #in
繼續訪問
HS26Fxx-C_Demo_Code-延時函數
HS26Fxx-Dome_Code void Delay_Us(unsigned char Delay_Cnt) //{xx.h}文件中聲明延時函數************************************************ void Delay_Us(unsigned char Delay_Cnt); //延時函數 //{.c}定義延時函數*********************************************************************** /
繼續訪問
HS26Fxx-C_Demo_Code-ADC相關函數的定義與使用
HS26Fxx-C_Demo_Code-ADC相關函數的定義與使用 功能:測試AD采樣功能 void ADC_Init(void) unsigned long ADC_Data_Collect(unsigned char ADC_Input_Pin,unsigned char ADC_AIN) 1.AD相關函數聲明 //.h文件聲明*************************************************************************** void ADC_Init
繼續訪問
HS26Fxx-C_Demo_Code-中斷函數、中斷子函數的定義與使用
HS26Fxx-C_Demo_Code-中斷函數、中斷子函數的定義與使用 功能:定時器TC0中斷程序參考 void __interrupt[0x08] Interrupt(void)//無需聲明 void __interrupt Interrupt_Demo(void) 中斷子函數 函數聲明 //中斷子函數函數聲明*********************************************************************** void __interrupt Interrupt
繼續訪問
HS26Fxx-C_Demo_Code-測試函數RF格式,UART格式的定義與使用
HS26Fxx-C_Demo_Code-測試函數RF格式,UART格式的定義與使用 功能:利用示波器或者UART串口工具測試 void Send_Dat_For_Test(unsigned char Test_Dat) 1.測試函數函數聲明 //.h文件聲明*************************************************************************** void Send_Dat_For_Test(unsigned char Test_Dat);
繼續訪問
HT66FXX.zip_HT-IDE3000_HT66Fxx_ht_ht-46_ht66f
HT單片機HT66F系列最基本的實用教程中文資料完全版
最新發布 C8051FXX-boot-loader-.zip_boot loader
主要描述了C8051F0XX系列單片機的引導裝入程序考慮及舉例
stc8_demo程序.rar_DEMO_STC8 PCA_stc8_stc8 pwm_stc8a8
stc8,DEMO程序: uart stc8aid delay IO timer adc pwm pca
cape-fxx.rar_1c60deac5d48_dcfxx_fxxee_out_tof_cape beagle
FXX_DRV_VER 0.1 AM335 interface functions: int ioctrl_init(void) int ioctrl_cleanup(void) uint32_t *ioctrl_remap(uint32_t *addr_ptr, size_t block_len) int ioctrl_unmap(uint32_t *addr_ptr, size_...
fxx.zip_c 語言微分_telephonew1j_產品代碼fxx
常微分代碼,主要是C語言方面的,大家可以下載看看的
HT66FXX-EEPROM.rar_單片機開發_Asm_
HT66FXX-EEPROM的讀寫及應用說明文檔
FXX_PR3_NV.rar
FXX_PR3_NV.rar,FXX_PR3_NV.xml
合泰單片機常式資料,HT66FXX FLASH常式,源碼學習.rar_DEMO_ht66f50 _newsz3i_合泰 學習_合
合泰單片機HT66F50常式工程源程序,合泰各種常式demo都在裡面
HC89F3xx1_Touch_Demo_Code V1.0.5.0_fourt1r_HC89F3XXX_芯聖_DEMO_芯聖程
芯聖HC89FXX系列觸摸程序,調好的。官方下載。
STM32F103ZET6 - USB_DFU 升級
STM32F103ZET6 - USB_DFU 升級 前言: 記錄下碰到的坑!! 模擬時發現讀按鍵狀態函數HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin),無論是判斷等於1還是0,模擬都能進入; 糾結很久,然後查看GPIOx_IDR寄存器, 發現沒問題,按鍵按下時該位為0,不按為1; 經查找發現是IDE優化等級問題,STM32CubeMX生成的代碼默認優化等級為...
繼續訪問
單片機
編程語言
寫評論
評論
收藏
點贊
『玖』 敬愛的合泰單片機高手!!!!!!!
1.怎樣用軟體設置:CMOSE輸出,帶或不帶上拉電阻的斯密特觸發輸入,A/D輸入????
輸出就是輸出,什麼"CMOS輸出"是Holtek官方術語,"斯密特觸發輸入"也是官方術語,帶不帶上拉電阻是在IDE掩膜選項中設置的
引腳是AD輸入還是數字IO靠ADCR中的控制位來定義
2.怎樣理解ADCR中的前六位設置???當設置好模義輸入通道,為什麼還要定義PB呢????
這是HT46R52的ADCR 參考(估計HT46R22是一樣的):
0 ACS0 選擇模擬輸入通道
1 ACS1 選擇模擬輸入通道
2 ACS2 選擇模擬輸入通道
3 PCR0 為0 則關閉,減小功耗
4 PCR1 為0 則關閉,減小功耗
5 PCR2 為0 則關閉,減小功耗
6 EOC A/D 轉換結束標志(0:A/D 轉換結束)
每次bit3-5 狀態的改變後都必須通過START 信號來初始化A/D 轉換器,
否則EOC可能會處於不確定狀態
7 START 0→1→0:開始; 0→1:A/D 轉換復位並且置EOC為「1」
「當設置好模義輸入通道,為什麼還要定義PB呢????」
前面0-2隻是個通道選擇(多選1模擬開關),並不能決定PB口是模擬口還是數字IO
就像有一塊內存空間,你選中了一個位元組來用,但裡面的內容到底什麼不知道,設置一下就知道了。
3.埠問題:
1.控制寄存器:設定IO口是輸入還是輸出,數據寄存器(埠寄存器)讀取/設置埠電平
2.設_pac=0b00000000;意思是pa口全部輸出;設_pa= 0b00000000;則pa全部輸出0
3.初始化埠的步驟示例:_pac=0x00; _pa=0x00;
4.其他問題:
#pragma vector isr_time @ 0x08 //中斷服務程序定義
#pragma vector isr_ad @ 0x0c //中斷服務程序定義
uchar sign0 @ 0x40; //在絕對地址定義變數
uchar sign1 @ 0x41; //在絕對地址定義變數
『拾』 合泰單片機HT67F系列的使用問題
1,寄存器名與手冊對不上號是很正常的,不光合泰的單片機有這種情況,其它的單片機也有這種情況,出現這種情況程序編譯是通不過的。所以有時候要關心一下頭文件,以頭文件的器存器命名為准,或自己更改頭文件。
2,關於管腳復用問題。一般情況下不對管腳進行配置默認都是普通IO,但是如果要使用管腳的其它功能,在使用前就要先對相關寄存器進行配置,比如要使用AN1就要先配置好AD轉換相關的寄存器,如:ADR、ADRL、ADRH、ADCR、ACSR寄存器。