久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
輝芒微FT62F211,觸摸調試無反應 有可能是什么原因
[打印本頁]
作者:
xuetao1
時間:
2024-1-12 12:45
標題:
輝芒微FT62F211,觸摸調試無反應 有可能是什么原因
使用輝芒微FT62F211,在visualTouchTL中配置好觸摸按鍵腳,但是在IDE中調試一點反應都沒有,在TouchTL中點擊運行都正常,請問有可能是什么原因,麻煩幫忙指點下,萬分感謝!!
作者:
2851143905
時間:
2024-1-12 15:08
用示波器測量TKCAP腳的波形
作者:
2851143905
時間:
2024-1-12 16:25
貼個代碼出來才知道,你要什么反應還在你的控制代碼里.代碼都沒的你要什么反應
作者:
xuetao1
時間:
2024-1-13 10:20
第一次發帖,有可能表述不清楚,謝謝大家!
作者:
xuetao1
時間:
2024-1-13 10:32
感謝,謝謝大家!我是第一次發帖,沒有表訴清楚。我用的是輝芒微FT62F211芯片,使用VisualTouchTL選中PA3做為觸摸腳,然后調試生成代碼,在IDE中讀取TSC_GetSingle(); 但是返回值一直為零,沒有反應出現,在VisualTouchTL中調試和運行界面都是正常,所以不知道是什么原因。非常感謝大家,麻煩幫助指點下。
main.c
/**********************************************************************************
* @芯片資源
* 1. Device: FT62F21X
* 2. Memory: Flash 1KX14b, SRAM:64X8b EEPROM 256X8b
*
* 3. 文件名:main.c
*
//*********************************************************************************/
#include "Touch.h"
#include "Led.h"
#include "uart.h"
volatile unsigned char ucKeySingle = 0;
#ifdef _DEF_LOW_POWER
unsigned int uiSleepTime = 0;
#endif
void Get_Key_Demo(void);
void SleepProcess(void);
void Debug_Func(void);
/*-------------------------------------------------
* 函數名稱:DelayUs
* 功能: 短延時函數 --16M-2T--大概快1%左右.
* 輸入參數:Time 延時時間長度 延時時長Time Us
* 返回參數:無
-------------------------------------------------*/
void DelayUs(unsigned char Time)
{
unsigned char a;
for(a=0;a<Time;a++)
{
_nop();
}
}
/*-------------------------------------------------
* 函數名稱:interrupt ISR
* 功能: 短延時函數 --16M-2T--大概快1%左右.
* 輸入參數:Time 延時時間長度 延時時長Time Us
* 返回參數:無
-------------------------------------------------*/
void interrupt ISR(void)//PIC_HI-TECH使用
{
}
/*-------------------------------------------------
* 函數名:SYS_INITIAL
* 功能: 上電系統初始化
* 輸入: 無
* 輸出: 無
--------------------------------------------------*/
void SYS_INITIAL (void)
{
//時鐘先8M 寫完PCON (bit7),OPTION(all bit),LVDCON(bit2),后換回16M
OSCCON = 0B01100000;
//WDT 32KHZ IRCF=110=8MHZ/4=4MHZ,0.25US/T
//Bit0=1,系統時鐘為內部振蕩器
//Bit0=0,時鐘源由FOSC<2:0>決定即編譯選項時選擇
OPTION = 0B00000100;
//Bit5 T0CS Timer0時鐘源選擇
//1-外部引腳電平變化T0CKI 0-內部時鐘(FOSC/2)
//Bit4 T0CKI引腳觸發方式 1-下降沿 0-上升沿
//Bit3 PSA 預分頻器分配位 0-Timer0 1-WDT
//Bit2:0 PS2 8個預分頻比 100 - 1:32
LVDCON = 0x03;
//bit2 0:不經過去抖電路 bit[1:0] 00:vdd 01:pa5 10:pa4 11:touch
PCON = 0x88;
//開LVD bit3 低電壓偵測使能 bit[7:4]=1xxx 1.2v
OSCCON = SYS_OSCCON;
//WDT 32KHZ IRCF=110=16MHZ/4=4MHZ,0.25US/T
T0CON0 = 0;
//復位上T0ON默認為1,所以需要清0
MSCON = 0;
//軟件關閉LVREN不然低功耗電流會變大(Options下必須選擇LVREN=SLVREN)
INTCON = 0;
//暫禁止所有中斷
PORTA = 0;
///////////特別注意與TKCAP合打線的PIN//////////////////////////
//對于6pin 封裝, TKCAP 與PA2 共用引腳3。
//對于DFN8 封裝, TKCAP 與PA4 共用引腳2。
//引腳用作TKCAP 功能時,則PA2/PA4 必須相應地設置為輸入;
//當關閉Touch模塊功能時,則PA2/PA4 為通用IO功能。
TRISA = TRISA_CONFIG;
// 0-輸出 1-輸入
///////////特別注意與TKCAP合打線的PIN//////////////////////////
WPUA = 0B00000000;
//PA端口上拉控制 1-開上拉 0-關上拉
PSRCA = 0B00000000;
//PA4,PA5源電流能力設置為0
}
/*-------------------------------------------------
* 函數名稱:WDT_INITIAL
* 功能: 初始化設置看門128MS時間復位
-------------------------------------------------*/
void WDT_INITIAL (void)
{
/* 清看門狗 */
CLRWDT();
/* 時鐘分頻分給WDT */
PSA = 0;
//WDTPS=0111=1:4096,PS=000=1:1
//定時時間=(4096*1)/32000=128ms
WDTCON = 0B00001111;
}
#ifdef _DEF_LOW_POWER
/**********************************************************************************
* @brief Sleep_Enable program.
* @param None
* @note 進出睡眠的相關處理
* @retval None
*********************************************************************************
*/
void Sleep_Enable(void)
{
if(bSleepMode==1)
{
uiSleepTime = 0;
IO_Out_Low();
//PORTA &= ~ucAllKeyMap;
//TRISA &= ~ucAllKeyMap;
LVDEN = 0;
LVDCON = 0;
TKCON = 0x10;//TKEN使能
SLEEP();
LVDCON = 0x03;
LVDEN = 1;
}
}
#endif
/*------------------------------------------------------------------------------------------
* 函數名: TSC_Scan
* 功能:
* 輸入: 無
* 輸出: 無
----------------------------------------------------------------------------------------------*/
void TSC_Scan(void)
{
#ifndef TOUCH_DEBUG
TSC_Start();
#else
TSC_Start_Test();
ConmunicateToPc();
#endif
}
/*------------------------------------------------------------------------------------------
* 函數名: main
* 功能: 主函數
* 輸入: 無
* 輸出: 無
----------------------------------------------------------------------------------------------*/
void main(void)
{
/* 系統初始化 */
SYS_INITIAL();
/* WDT初始化 */
WDT_INITIAL();
/* 按鍵初始化 */
TOUCH_INITIAL();
/* Demo led 初始化 */
// LED();
while(1)
{
CLRWDT();
/* 掃鍵 */
TSC_Scan();
if(TSC_DataProcessing()==1)
{
/* 生成有效按鍵 */
ucKeySingle = TSC_GetSingle();
if(ucKeySingle == 0x01)
{
PA4=1;
}
// else
// {
// PA4=1;
// }
/* 獲取按鍵值并處理 */
// Get_Key_Demo();
/* 低功耗處理函數,不需要低功耗時可以刪除 */
// SleepProcess();
/* 和上位機通信時需要的函數,正常使用時可以刪除 */
// Debug_Func();
}
}
}
/******************************************************************************
* @brief Debug_Func program
* @Description 觸摸調試使用的函數
* @param None
* @note
* @retval None
*****************************************************************************
*/
void Debug_Func(void)
{
#ifdef TOUCH_DEBUG
//上位機工具調試時上傳數據
_ucSendGapCnt++;
if(_ucSendGapCnt > SEND_GAP)
{
_ucSendGapCnt = 0;
TX_Flag = 1;
}
#endif
}
/******************************************************************************
* @brief SleepProcess program
* @Description 低功耗處理函數
* @param None
* @note
* @retval None
*****************************************************************************
*/
void SleepProcess(void)
{
#ifdef _DEF_LOW_POWER
if(ucKeySingle==0)
{
/* 無有按鍵按下 */
uiSleepTime++;
/* 5s無按鍵則進入低功耗 */
if(uiSleepTime>500)
{
uiSleepTime = 0;
bSleepMode = 1;
}
/* 無按鍵按下 */
}
else
{
/* 有按鍵按下 */
uiSleepTime = 0;
/* 退出低功lhao */
bSleepMode = 0;
/* 有按鍵按下 */
}
/* 進入低功耗 */
Sleep_Enable();
#endif
}
/******************************************************************************
* @brief Get_Key_Demo program
* @Description 獲取觸摸按鍵示例,用戶參考實現自己的功能
* @param None
* @note
* @retval None
*****************************************************************************
*/
void Get_Key_Demo(void)
{
/* 生成有效按鍵 */
ucKeySingle = TSC_GetSingle();
/* Demo led 有效按鍵提示 */
// LED_Scan();
}
touch.c
/**
*********************************************************************************
* @file touch.h
* @author FMD AE
* @brief 庫頭文件
* @version V1.0.0
* @date 2023-07-13
*********************************************************************************
* @attention
* COPYRIGHT (C) 2021 Fremont Micro Devices Corporation All rights reserved.
* This software is provided by the copyright holders and contributors,and the
*software is believed to be accurate and reliable. However, Fremont Micro Devices
*Corporation assumes no responsibility for the consequences of use of such
*software or for any infringement of patents of other rights of third parties,
*which may result from its use. No license is granted by implication or otherwise
*under any patent rights of Fremont Micro Devices Corporation.
**********************************************************************************
*/
/**********************************************************************************
* @芯片資源
* 1. Device: FT62F21X
* 2. Memory: Flash 1KX14b, SRAM:64X8b EEPROM 256X8b
* 3. Code size:
* 4. SRAM指定地址:
* 指定地址 中間變量應用定義:0x50 ~0x56
* 指定地址 按鍵數據保存區: 0x40
**********************************************************************************
*/
#ifndef _TOUCH_H
#define _TOUCH_H
#include "syscfg.h"
#include <string.h>
#define TOUCH_LIB_VERSION V1.0.0 //庫版本 V1.0.0;
//{{VERSION_DEFINE
//}}VERSION_DEFINE
//{{CONST_DEFINE
#define TOUCH_TOOL_VERSION V2.0.3.1
//#define TOUCH_DEBUG
//#define _DEF_LOW_POWER
//#define TOUCH_CS
#define TX PA1
#define RX PC6
/////////系統時鐘定義//////////////////////////////////////
#define SYS_OSCCON 0B01110001 //16M
#ifdef TOUCH_DEBUG
#define TRISA_CONFIG 0B11111101
#else
#define TRISA_CONFIG 0B00000000
#endif
//}}CONST_DEFINE
//{{KEY_DEFINE
/////////按鍵對應芯片KEYIO映射定義//////////////////////////
#define KEY0_INDEX_MAP 3
#define KEY_NUMBER 1 //按鍵數
//}}KEY_DEFINE
//{{KEY_ONOFF_VALUE
/////////////按鍵有效閥值////////////////////////////////////
#define KEY0_ON 153
///////////按鍵無效閥值//////////////////////////////////////
#define KEY0_OFF 102
//}}KEY_ONOFF_VALUE
unsigned char stTkData[KEY_NUMBER][4]@ 0x40;
const unsigned char ucKeyNumberMax = KEY_NUMBER;
#ifdef TOUCH_DEBUG
unsigned char UART_TX_Buff[21] @0x57;
#endif
//{{KEY_MAP
////////按鍵對應KEYIO映射表/////////////////////////////////////////////
const unsigned char ucKeyIndexMapArray[KEY_NUMBER]=
{
KEY0_INDEX_MAP,
};
const unsigned char ucAllKeyMap =1<< KEY0_INDEX_MAP;
//}}KEY_MAP
//{{KEY_ONOFF_ARRARY
const unsigned char ucActiveSensorDeltaArray[KEY_NUMBER]=
{
KEY0_ON
};
const unsigned char ucInActiveSensorDeltaArray[KEY_NUMBER]=
{
KEY0_OFF
};
//}}KEY_ONOFF_ARRARY
//////////采集數據處理相關定義////////////////////////////
#define SINGLE_FILTER_1 4 //濾波次數
#define BASE_LINE_UP_SPEED_1 100 //向上更新速度
#define BASE_LINE_DOWN_SPEED_1 100 //向下更新速度
#define BASE_LINE_EQUAL_UP_SPEED_1 200 //100 //向上快速更新
#define BASE_LINE_EQUAL_DOWN_SPEED_1 200 //100 //向下快速更新
#define BASE_UPDATA_FILTER_1 4 //快速更新條件
const unsigned char ucSingleFilter = SINGLE_FILTER_1;
const unsigned char ucBaselineDownSpeed = BASE_LINE_DOWN_SPEED_1;
const unsigned char ucBaselineUpSpeed = BASE_LINE_UP_SPEED_1;
const unsigned char ucBaselineEqualUpSpeed = BASE_LINE_EQUAL_UP_SPEED_1;
const unsigned char ucBaselineEqualDownSpeed = BASE_LINE_EQUAL_DOWN_SPEED_1;
const unsigned char ucBaseUpdataFilter = BASE_UPDATA_FILTER_1;
/////////////////////低功耗使用變量////////////////////////////////////////
extern volatile bit bSleepMode;//進入低功耗標志位
///////////功能函數定義/////////////////////////////////////
void IO_Out_Low(void);
void TOUCH_INITIAL(void); //觸摸按鍵配置初始化
void TSC_Start(void); //按鍵掃描結果處理,每次只做一個按鍵的一次掃描處理
void TSC_Reset(void); //復位觸摸. 長按保護可使用
unsigned char TSC_DataProcessing(void);//所有按鍵數據處理狀態: 1表示所有按鍵數據處理完成 0表示未處理按鍵數據
unsigned char TSC_GetSingle(void); //獲取按鍵有效標志,每bit表示一個鍵,1為有按鍵按下,0為無按鍵按下
#ifdef TOUCH_DEBUG
void TSC_Start_Test(void);
unsigned int TSC_GetPrevData(unsigned char num);
#endif
#endif
///////////////////////////////////////////////////////
//CONST_ROM_TOTAL 1024
//CONST_RAM_TOTAL 64
//CONST_ROM_TOUCH 575+3*KEY_NUMBER
//CONST_ROM_CS_TOUCH 0
//CONST_ROM_LP_TOUCH 631+3*KEY_NUMBER
//CONST_ROM_CS_LPTOUCH 0
//CONST_RAM_TOUCH 23+4*KEY_NUMBER
//CONST_RAM_CS_TOUCH 0
//CONST_RAM_LP_TOUCH 26+4*KEY_NUMBER
//CONST_RAM_CS_LPTOUCH 0
//CONST_TIMER_TOTAL 0
//CONST_TIMER_USED 0
//CONST_TIMER 0
作者:
2851143905
時間:
2024-1-13 11:40
/*------------------------------------------------------------------------------------------
* 函數名: main
* 功能: 主函數
* 輸入: 無
* 輸出: 無
----------------------------------------------------------------------------------------------*/
void main(void)
{
SYS_INITIAL(); //系統初始化
DelayUs(250);
DelayUs(250);
WDT_INITIAL(); //WDT初始化
TOUCH_INITIAL(); //按鍵初始化
// LED(); // Demo led 初始化
while(1)
{
CLRWDT();
TSC_Start(); //掃鍵
if(TSC_DataProcessing()==1)
{
ucKeySingle = TSC_GetSingle(); //生成有效按鍵
}
// if(now==0x00&&ucKeySingle)
// {
// OUT=!OUT;
// }
// now=ucKeySingle;
if(ucKeySingle!=0)
{
if(now!= ucKeySingle)
{
OUT=!OUT;
}
now= ucKeySingle;
}
else
{
now=0;
}
}
}把這個貼進去看看
作者:
2851143905
時間:
2024-1-13 11:50
if(ucKeySingle == 0x04) PA3觸摸鍵值是0x04, 你判斷0x01.
作者:
2851143905
時間:
2024-1-13 11:55
/* 掃鍵 */
TSC_Scan();
if(TSC_DataProcessing()==1)
{
/* 生成有效按鍵 */
ucKeySingle = TSC_GetSingle();
if(ucKeySingle == 0x01)
{
PA4=1;
}
else
{
PA4=0;
}
作者:
2851143905
時間:
2024-1-16 15:53
這個很簡單的從輝滿微的TOUCH開發里生成代碼,加入自己的代碼不就成了嗎?
作者:
xuetao1
時間:
2024-1-17 09:18
2851143905 發表于 2024-1-16 15:53
這個很簡單的從輝滿微的TOUCH開發里生成代碼,加入自己的代碼不就成了嗎?
是的,我現在就是在TOUCH開發中生成代碼,但是在IDE中讀取 ucKeySingle = TSC_GetSingle(); 返回值一直為零,不知道為什么,在TOUCH中點擊運行什么都是正常的,下面是代碼,我就加了一個判斷ucKeySingle,其他都是TOUCH生成的
void main(void)
{
/* 系統初始化 */
SYS_INITIAL();
/* WDT初始化 */
WDT_INITIAL();
/* 按鍵初始化 */
TOUCH_INITIAL();
/* Demo led 初始化 */
// LED();
while(1)
{
CLRWDT();
/* 掃鍵 */
TSC_Scan();
if(TSC_DataProcessing()==1)
{
/* 獲取按鍵值并處理 */
Get_Key_Demo();
/* 低功耗處理函數,不需要低功耗時可以刪除 */
SleepProcess();
/* 和上位機通信時需要的函數,正常使用時可以刪除 */
Debug_Func();
}
if(ucKeySingle != 0)
{
ucKeySingle = 0;
PA4=1;
}
else
{
PA4=0;
}
}
}
作者:
2851143905
時間:
2024-1-17 17:27
if(TSC_DataProcessing()==1)
{
ucKeySingle = TSC_GetSingle(); //生成有效按鍵
}
你都沒獲取 ucKeySingle = TSC_GetSingle(); //生成有效按鍵
怎么會有數據呢? 你私信我
作者:
2851143905
時間:
2024-1-17 17:31
/**********************************************************************************
* @芯片資源
* 1. Device: FT62F21X
* 2. Memory: Flash 1KX14b, SRAM:64X8b EEPROM 256X8b
*
* 3. 文件名:main.c
*
//*********************************************************************************/
#include "Touch.h"
#include "Led.h"
# define OUT PA3
unsigned char now;
unsigned char ucKeySingle = 0;
/*-------------------------------------------------
* 函數名稱:DelayUs
* 功能: 短延時函數 --16M-2T--大概快1%左右.
* 輸入參數:Time 延時時間長度 延時時長Time Us
* 返回參數:無
-------------------------------------------------*/
void DelayUs(unsigned char Time)
{
unsigned char a;
for(a=0;a<Time;a++)
{
_nop();
}
}
/*-------------------------------------------------
* 函數名稱:interrupt ISR
* 功能: 短延時函數 --16M-2T--大概快1%左右.
* 輸入參數:Time 延時時間長度 延時時長Time Us
* 返回參數:無
-------------------------------------------------*/
void interrupt ISR(void)//PIC_HI-TECH使用
{
}
/*-------------------------------------------------
* 函數名:SYS_INITIAL
* 功能: 上電系統初始化
* 輸入: 無
* 輸出: 無
--------------------------------------------------*/
void SYS_INITIAL (void)
{
//時鐘先8M 寫完PCON (bit7),OPTION(all bit),LVDCON(bit2),后換回16M
OSCCON = 0B01100000; //WDT 32KHZ IRCF=110=8MHZ/4=4MHZ,0.25US/T
//Bit0=1,系統時鐘為內部振蕩器
//Bit0=0,時鐘源由FOSC<2:0>決定即編譯選項時選擇
OPTION = 0B00000100; //Bit5 T0CS Timer0時鐘源選擇
//1-外部引腳電平變化T0CKI 0-內部時鐘(FOSC/2)
//Bit4 T0CKI引腳觸發方式 1-下降沿 0-上升沿
//Bit3 PSA 預分頻器分配位 0-Timer0 1-WDT
//Bit2:0 PS2 8個預分頻比 100 - 1:32
LVDCON = 0x03; //bit2 0:不經過去抖電路 bit[1:0] 00:vdd 01:pa5 10:pa4 11:touch
PCON = 0x88; //開LVD bit3 低電壓偵測使能 bit[7:4]=1xxx 1.2v
OSCCON = 0B01110000; //WDT 32KHZ IRCF=110=16MHZ/4=4MHZ,0.25US/T
T0CON0 = 0; //復位上T0ON默認為1,所以需要清0
MSCON = 0; //軟件關閉LVREN不然低功耗電流會變大(Options下必須選擇LVREN=SLVREN)
INTCON = 0; //暫禁止所有中斷
PORTA = 0;
///////////特別注意與TKCAP合打線的PIN//////////////////////////
//對于6pin 封裝, TKCAP 與PA2 共用引腳3。
//對于DFN8 封裝, TKCAP 與PA4 共用引腳2。
//引腳用作TKCAP 功能時,則PA2/PA4 必須相應地設置為輸入;
//當關閉Touch模塊功能時,則PA2/PA4 為通用IO功能。
TRISA = 0B00000000; // 0-輸出 1-輸入
///////////特別注意與TKCAP合打線的PIN//////////////////////////
WPUA = 0B00000000; //PA端口上拉控制 1-開上拉 0-關上拉
PSRCA = 0B00000000; //PA4,PA5源電流能力設置為0
}
/*-------------------------------------------------
* 函數名稱:WDT_INITIAL
* 功能: 初始化設置看門128MS時間復位
-------------------------------------------------*/
void WDT_INITIAL (void)
{
CLRWDT(); //清看門狗
PSA = 0; //時鐘分頻分給WDT
WDTCON = 0B00001111; //WDTPS=0111=1:4096,PS=000=1:1
//定時時間=(4096*1)/32000=128ms
}
/*------------------------------------------------------------------------------------------
* 函數名: main
* 功能: 主函數
* 輸入: 無
* 輸出: 無
----------------------------------------------------------------------------------------------*/
void main(void)
{
SYS_INITIAL(); //系統初始化
DelayUs(250);
DelayUs(250);
WDT_INITIAL(); //WDT初始化
TOUCH_INITIAL(); //按鍵初始化
// LED(); // Demo led 初始化
while(1)
{
CLRWDT();
TSC_Start(); //掃鍵
if(TSC_DataProcessing()==1)
{
ucKeySingle = TSC_GetSingle(); //生成有效按鍵
}
if(now==0x00&&ucKeySingle)
{
OUT=!OUT;
}
}
}把你那個主函數刪除了,用我這個
作者:
xuetao1
時間:
2024-4-9 14:23
解決:使用輝芒微FT62F211,在visualTouchTL中配置好觸摸按鍵腳,但是在IDE中調試一點反應都沒有,在TouchTL中點擊運行都正常的問題!
問題點:在touch.h 文件中
/////////////按鍵有效閥值////////////////////////////////////
#define KEY0_ON 118 //取值>=5
///////////按鍵無效閥值//////////////////////////////////////
#define KEY0_OFF 78
此值為判斷觸摸按鍵是否按下,一定需要根據提示使用應用電源來調試,它才能判斷準確來生成!非常感謝大家的幫助,后面我也會把這個代碼貼出來分享給大家!謝謝
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久久夜
|
性色av一区二区
|
成人网av
|
精品综合网
|
久久精品三级
|
欧洲一区二区
|
亚洲欧美视频在线观看
|
欧美黄色网
|
日日夜夜天天操
|
中文字幕在线观看免费
|
欧美一级片免费看
|
国产精品久免费的黄网站
|
欧美在线播放视频
|
在线中文字幕视频
|
日韩亚洲欧美在线
|
一区二区三区四区在线视频
|
日韩成人在线观看视频
|
一区二区三区免费
|
欧美日韩综合在线
|
玖玖视频
|
黄色成人免费视频
|
一二三四区在线观看
|
久久人体视频
|
日韩av一级
|
午夜影院在线
|
一级黄色免费
|
免费看黄色av
|
亚洲色网址
|
一级黄色录像片
|
天天操天天操
|
亚洲性猛交
|
亚洲国产精品一区二区三区
|
日本一区二区三区在线视频
|
黄色一级生活片
|
国产精品手机在线观看
|
免费不卡视频
|
国产传媒视频在线观看
|
在线观看国产一区二区
|
国语对白做受69
|
欧美日韩综合在线
|
成年人免费看片
|