在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【中科昊芯Start_DSC28027勇士開發(fā)板試用體驗(yàn)】計(jì)時(shí)器

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-21 11:08 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:xiaopeng, 帖子地址:https://bbs.elecfans.com/jishu_2290500_1_1.html

計(jì)時(shí)器演示

一、說明

勇士開發(fā)板上有一個(gè)四位共陰數(shù)碼管,于是想著能用它來顯示點(diǎn)什么,想了一下,也沒什么可以顯示的,只好用它來做個(gè)計(jì)時(shí)器,因?yàn)橹挥兴奈唬膊豢赡茱@示很復(fù)雜的內(nèi)容。

四位數(shù)碼管如果同時(shí)顯示分鐘和秒中,正好可以用前兩位顯示分鐘,后兩位顯示秒中,那么可以最大顯示99分鐘59秒。想好了就開始干。

二、方案設(shè)計(jì)

1、查看原理圖

圖片.png

從原理圖可以看出,開發(fā)板使用了一顆I2C接口的數(shù)碼管驅(qū)動芯片TM1650,驅(qū)動芯片與DSP之間只需要兩個(gè)IO口就可以實(shí)現(xiàn)數(shù)碼管的控制,還是非常方便的。
另外,該芯片通過讀的方式能夠檢測外部的按鍵。

2、TM1650介紹

TM1650是一款國產(chǎn)4位共陰數(shù)碼管驅(qū)動芯片,它還帶有矩陣按鍵掃碼功能。它的基本參數(shù)如下:

  • 工作電壓:3~5V
  • 數(shù)碼管驅(qū)動模式:8段x4位共陰數(shù)碼管
  • 矩陣按鍵驅(qū)動模式:7x4矩陣按鍵,不支持組合鍵
  • 通信接口:類IIC,使用了IIC相同的時(shí)序,但沒有完全遵守IIC的協(xié)議,不帶從機(jī)地址

引腳定義

SCL:串行通信時(shí)鐘

SDA:串行通信數(shù)據(jù)線

做數(shù)碼管驅(qū)動使用時(shí)

  • DIGx:數(shù)碼管的位選引腳,灌電流驅(qū)動,最大可吸收150mA電流

  • A~DP:數(shù)碼管的段驅(qū)動引腳,拉電流驅(qū)動,最大可輸出25mA電流
    圖片.png

    通信協(xié)議

TM1650使用的是類IIC接口,只是不帶從機(jī)地址機(jī)制。所以總線上的基本信號也包含起始信號,ACK應(yīng)答,結(jié)束信號,同時(shí)字節(jié)數(shù)據(jù)發(fā)送時(shí),也是按照標(biāo)準(zhǔn)IIC的MSB First順序。

發(fā)送命令設(shè)置數(shù)碼管顯示工作參數(shù)

通信格式:起始信號,模式命令(1字節(jié)),顯示命令(1字節(jié)),結(jié)束信號

這個(gè)指令用于設(shè)置數(shù)碼管顯示的相關(guān)參數(shù)。例如亮度,7段或者8段顯示,顯示的開關(guān)。模式命令固定為0x48,而顯示命令則滿足以下格式:
圖片.png

3、設(shè)計(jì)思路

計(jì)時(shí):因?yàn)橛率?27系列dsp沒有硬件RTC模塊,所以只能使用硬件定時(shí)器來實(shí)現(xiàn)。使用cputimer0來設(shè)置1ms的周期中斷,在中斷里面進(jìn)行計(jì)數(shù),計(jì)數(shù)到1s后進(jìn)行更新數(shù)碼管顯示。

暫停功能:利用按鍵s101來實(shí)現(xiàn)計(jì)數(shù)的暫停與繼續(xù)。

亮度調(diào)節(jié)功能:利用按鍵s102來實(shí)現(xiàn)數(shù)碼管亮度的調(diào)節(jié)

計(jì)數(shù)復(fù)位功能:利用按鍵s103來實(shí)現(xiàn)計(jì)數(shù)值的復(fù)位,從零開始計(jì)時(shí)

三、代碼編寫

main.c

#include "dsc_config.h"
#include 
#include "IQmathLib.h"
#include "sci.h"
#include "TM1650_IIC.h"
#include 

extern void InitKEY(void);
extern void InitLED(void);
void test(void);
Uint16 sec_rtc = 0;
Uint16 min_rtc = 0;
char keyReg = 0;

extern Uint32 msec_cnt;//用于計(jì)秒
extern volatile Uint8 msec_cnt_on;//0-on,1-off
int main(void)
{
	uint16_t cnt = 0;

	/*初始化系統(tǒng)控制:PLL,WatchDog,使能外設(shè)時(shí)鐘*/
	InitSysCtrl();
	/*初始化內(nèi)存控制寄存器,使能內(nèi)存流水線模式*/
	InitFlash();

	/*初始化串口通信的GPIO口*/
	/*GPIO28: SCIRXDA*/
	/*GPIO29: SCITXDA*/
	InitSciGpio();

	/*關(guān)閉中斷*/
	DINT;

	/*將PIE控制寄存器初始化為默認(rèn)狀態(tài),該狀態(tài)禁止所有PIE中斷并清除所有標(biāo)志*/
	InitPieCtrl();
	/*禁止CPU中斷并清除所有中斷標(biāo)志*/
	IER = 0x0000;
	IFR = 0x0000;
	/*初始化PIE向量表,為PIE向量表中的所有中斷向量配置對應(yīng)向量的入口地址*/
	InitPieVectTable();
	/*SCI寄存器配置*/
	Scia_Config(9600);
	/*定時(shí)器0初始化*/
	Timer0_init();

	/*初始化IIC總線的Gpio*/
	InitI2C_Gpio();
	/*IIC初始化*/
	I2CA_Init();
	/*軟件復(fù)位IIC從設(shè)備*/
	softResetIIC_BUS();
	//printf("\r\nTM1650 init...");//標(biāo)準(zhǔn)C的printf輸出測試,串口調(diào)試助手設(shè)置波特率128000bps,ASCII格式顯示

	/*BIT6到BIT4為亮度調(diào)節(jié),BIT0是  1 開啟/0關(guān)閉*/
	LigntVal = 0x11;
	/*1級亮度,開啟顯示*/
	TM1650_Send(CMD_SEG, LigntVal);
	/*DIG0-DIG3均顯示0*/
	TM1650_Send(DIG0, SEG7Table[0]);
	TM1650_Send(DIG1, SEG7Table[0]);
	TM1650_Send(DIG2, SEG7Table[0]);
	TM1650_Send(DIG3, SEG7Table[0]);

	/*使能外部中斷和CPU中斷*/
	EINT;

	/*初始化KEY、LED*/
	InitKEY();
	InitLED();

	/*通過SCI發(fā)送字符串*/
	Scia_Print("Hello haawking!\r\n");
	while(1)
	{
		if((CpuTimer0.InterruptCount % 250) == 0)
		{
			/*TM1650獲取掃描按鍵S101 S102 S103,控制數(shù)碼管數(shù)字顯示及亮度調(diào)節(jié)*/
			TM1650_Read(CMD_KEY, &keyVal);

			/*S101按下時(shí),開始/暫停計(jì)時(shí)*/
			if(keyVal == 0x44)
			{
				msec_cnt_on ^= 0x01;
				uart_printf("msec_cnt_on = %d\r\n",msec_cnt_on);
			}
			/*S102按下時(shí),改變數(shù)碼管顯示亮度*/
			if(keyVal == 0x4c)  //
			{
				/*高四位為亮度調(diào)節(jié),最后1位是開啟、關(guān)閉顯示*/
				LigntVal = (LigntVal + 0x20) & 0x7F;

				/*1級亮度,開啟顯示*/
				TM1650_Send(CMD_SEG, LigntVal);
				uart_printf("LigntVal = %d\r\n",LigntVal);
			}

			/*按下S103時(shí)*/
			if(keyVal == 0x54)
			{
				msec_cnt = 0;
				sec_rtc = 0;
				min_rtc = 0;
				keyReg = 0;

				/*DIG0-DIG3清零*/
				TM1650_Send(DIG0,SEG7Table[0]);
				TM1650_Send(DIG1, SEG7Table[0]);
				TM1650_Send(DIG2, SEG7Table[0]);
				TM1650_Send(DIG3, SEG7Table[0]);

				/*D400翻轉(zhuǎn)*/
				GpioDataRegs.GPATOGGLE.bit.GPIO7 = 1;
				uart_printf("cnt reset\r\n");
			}
		}

		/*間隔為1000ms*/
		if(msec_cnt >= 1000)
		{
			/*定時(shí)器0中斷次數(shù)清零*/
			msec_cnt = 0;

			/*D401翻轉(zhuǎn)*/
			GpioDataRegs.GPATOGGLE.bit.GPIO6 = 1;

			/*Tmp累加,從0-999循環(huán)*/
			sec_rtc++;
			if(sec_rtc >= 60)
			{
				sec_rtc = 0;
				min_rtc++;
				if(min_rtc >= 100)
				{
					min_rtc = 99;
					sec_rtc = 59;
				}

			}

			//分鐘十位
			TM1650_Send(DIG0,SEG7Table[min_rtc / 10]);
			/*分鐘各位*/
			TM1650_Send(DIG1, SEG7Table[min_rtc % 10]);

			/*秒十位*/
			TM1650_Send(DIG2, SEG7Table[sec_rtc / 10]);
			/*秒個(gè)位*/
			TM1650_Send(DIG3, SEG7Table[sec_rtc % 10]);
		}
	}

	return 0;
}

// ----------------------------------------------------------------------------

timer.c

/******************************************************************
 文 檔 名:     epwm.c
 D S P:       DSC28027
 使 用 庫:
 作     用:
 說     明:      提供timer接口初始化配置
 ---------------------------- 使用說明 ----------------------------
 功能描述:


 版 本:V0.0.3
 時(shí) 間:2022年1月19日
 作 者:
 @ mail:[email protected]
 ******************************************************************/
#include "dsc_config.h"
#include "TM1650_IIC.h"
#include "timer.h"

timer0 timer0Base;
volatile uint32_t Tick;
Uint32 msec_cnt = 0;//用于計(jì)秒
volatile Uint8 msec_cnt_on = 0;//0-on,1-off
/******************************************************************
 *函數(shù)名:Timer0_init
 *參 數(shù):無
 *返回值:無
 *作 用:初始化Timer
 ******************************************************************/
void Timer0_init()
{
	/*初始化Cpu定時(shí)器*/
	InitCpuTimers();

	/*開啟模塊中斷使能,位于 Timer->RegsAddr->TCR.bit.TIE = 1;
	 120MHz,1000us ,即為 1ms中斷周期*/
	ConfigCpuTimer(&CpuTimer0, 120, 1000);
	/* 使能中斷*/
	CpuTimer0Regs.TCR.bit.TIE = 1;
	/* 開始計(jì)時(shí)*/
	CpuTimer0Regs.TCR.bit.TSS = 0;

	/*重映射中斷服務(wù)函數(shù)*/
	EALLOW;
	PieVectTable.TINT0 = &cpu_timer0_isr;
	EDIS;
	/*連接CPU中斷Y*/
	IER |= M_INT1;
	/*連接Y中斷里的第幾位*/
	PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
}
/******************************************************************
 *函數(shù)名:INTERRUPT void cpu_timer0_isr(void)
 *參 數(shù):無
 *返回值:無
 *作 用:CPU 定時(shí)器0 中斷服務(wù)函數(shù)
 ******************************************************************/

INTERRUPT void cpu_timer0_isr(void)
{
#if 0
	timer0Base.msCounter++;
	timer0Base.Mark_Para.Status_Bits.OnemsdFlag = 1;

	Tick++;
	/*中斷響應(yīng)*/
	EALLOW;
	PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
	EDIS;

#endif

	/*定時(shí)器0中斷次數(shù)累計(jì)*/
	CpuTimer0.InterruptCount++;
	if(msec_cnt_on == 0)
	{
		msec_cnt++;
	}

	/*檢測IIC模塊狀態(tài)為空閑還是寫入*/
	char i;

	for(i = 0; i < IIC_NODE_NUM; i++)
	{
		PtrMsg[i]->IIC_TimerOUT = (PtrMsg[i]->MasterStatus == IIC_IDLE) ? 0 : (PtrMsg[i]->IIC_TimerOUT + 1);
	}

	/*通知可以接收第一組中斷的所有中斷*/
	PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)時(shí)器
    +關(guān)注

    關(guān)注

    1

    文章

    426

    瀏覽量

    33341
  • 中科昊芯
    +關(guān)注

    關(guān)注

    5

    文章

    81

    瀏覽量

    5411
  • 開發(fā)板試用
    +關(guān)注

    關(guān)注

    3

    文章

    301

    瀏覽量

    2282
收藏 人收藏

    評論

    相關(guān)推薦

    【新品體驗(yàn)】正點(diǎn)原子STM32MP257開發(fā)板免費(fèi)試用

    試用產(chǎn)品概述ATK-DLMP257B開發(fā)板是正點(diǎn)原子基于STM32MP257DAK3處理研發(fā)的一款高性能嵌入式開發(fā)平臺,適用于嵌入式系統(tǒng)開發(fā)
    的頭像 發(fā)表于 04-22 08:05 ?186次閱讀
    【新品體驗(yàn)】正點(diǎn)原子STM32MP257<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

    中科DSP產(chǎn)品及公司信息

    庫和驅(qū)動庫,幫助用戶降低遷移成本,縮短開發(fā)周期。同時(shí),公司還推出了多種開發(fā)板和核心,如Core_DSC28027Start_DSC280
    發(fā)表于 04-07 09:16

    免費(fèi)丨米爾 STM32MP257開發(fā)板有獎(jiǎng)試用

    米爾與ST合作發(fā)布的新品基于STM32MP257應(yīng)用處理的MYD-LD25X開發(fā)板免費(fèi)試用活動來啦~~米爾提供了2塊價(jià)值488元的MYD-LD25X開發(fā)板發(fā)起
    的頭像 發(fā)表于 03-20 08:05 ?238次閱讀
    免費(fèi)丨米爾 STM32MP257<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>

    有獎(jiǎng)丨米爾 瑞微YR3562開發(fā)板免費(fèi)試用

    米爾與瑞微合作發(fā)布的新品基于瑞微RK3562應(yīng)用處理的MYD-YR3562開發(fā)板免費(fèi)試用活動來啦~~米爾提供了3塊價(jià)值599元的MYD
    的頭像 發(fā)表于 03-20 08:05 ?313次閱讀
    有獎(jiǎng)丨米爾 瑞<b class='flag-5'>芯</b>微YR3562<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

    有獎(jiǎng)試用!!RA-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動報(bào)名

    RA-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動
    的頭像 發(fā)表于 03-13 12:10 ?330次閱讀
    有獎(jiǎng)<b class='flag-5'>試用</b>!!RA-Eco-RA4M2-100PIN-V1.0<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動報(bào)名

    Banana Pi開源社區(qū)基于瑞微RK3588開發(fā)板,DeepSeek開發(fā)利器

    Banana Pi開源社區(qū)基于瑞微RK3588開發(fā)板,DeepSeek開發(fā)利器
    的頭像 發(fā)表于 02-19 18:25 ?1100次閱讀
    Banana Pi開源社區(qū)基于瑞<b class='flag-5'>芯</b>微RK3588<b class='flag-5'>開發(fā)板</b>,DeepSeek<b class='flag-5'>開發(fā)</b>利器

    有獎(jiǎng)丨米爾 全志T536開發(fā)板免費(fèi)試用

    米爾與全志合作發(fā)布的新品基于全志T536應(yīng)用處理的MYD-LT536-GK開發(fā)板免費(fèi)試用活動來啦~~米爾提供了3塊價(jià)值750元的MYD-LT536-GK開發(fā)板發(fā)起
    的頭像 發(fā)表于 12-26 08:05 ?618次閱讀
    有獎(jiǎng)丨米爾 全志T536<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

    微主板/開發(fā)板Linux系統(tǒng)播放音頻方法,觸覺智能RK3562開發(fā)板演示

    本文介紹瑞微方案主板/開發(fā)板Linux系統(tǒng)播放音頻的方法,觸覺智能RK3562開發(fā)板演示,通用RK3566、RK3568、RK3588等
    的頭像 發(fā)表于 12-13 11:40 ?671次閱讀
    瑞<b class='flag-5'>芯</b>微主板/<b class='flag-5'>開發(fā)板</b>Linux系統(tǒng)播放音頻方法,觸覺智能RK3562<b class='flag-5'>開發(fā)板</b>演示

    追加名額丨米爾瑞微RK3576開發(fā)板有獎(jiǎng)試用

    米爾與瑞微合作發(fā)布的新品基于瑞微RK3576應(yīng)用處理的MYD-LR3576開發(fā)板免費(fèi)試用活動加碼啦~~米爾追加了2塊價(jià)值849元的MY
    的頭像 發(fā)表于 11-22 01:00 ?479次閱讀
    追加名額丨米爾瑞<b class='flag-5'>芯</b>微RK3576<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>

    【RA8D1試用活動】RA8D1B-CPKCOR開發(fā)板移植linux

    【RA8D1試用活動】RA8D1B-CPKCOR開發(fā)板移植linux
    的頭像 發(fā)表于 11-16 01:02 ?629次閱讀
    【RA8D1<b class='flag-5'>試用</b>活動】RA8D1B-CPKCOR<b class='flag-5'>開發(fā)板</b>移植linux

    有獎(jiǎng)丨米爾 瑞微RK3576開發(fā)板免費(fèi)試用

    米爾與瑞微合作發(fā)布的新品基于瑞微RK3576應(yīng)用處理的MYD-LR3576開發(fā)板免費(fèi)試用活動來啦~~米爾提供了7塊價(jià)值849元的MYD
    的頭像 發(fā)表于 11-12 01:00 ?603次閱讀
    有獎(jiǎng)丨米爾 瑞<b class='flag-5'>芯</b>微RK3576<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

    有獎(jiǎng)試用!!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動開始報(bào)名

    有獎(jiǎng)試用!!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動開始報(bào)名
    的頭像 發(fā)表于 11-09 01:02 ?449次閱讀
    有獎(jiǎng)<b class='flag-5'>試用</b>!!RA-Eco-RA4E2-64PIN-V1.0<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動開始報(bào)名

    LMC555 CMOS計(jì)時(shí)器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《LMC555 CMOS計(jì)時(shí)器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-20 09:16 ?1次下載
    LMC555 CMOS<b class='flag-5'>計(jì)時(shí)器</b>數(shù)據(jù)表

    點(diǎn)擊參與米爾NXP i.MX 93開發(fā)板有獎(jiǎng)試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理的MYD-LMX9X開發(fā)板免費(fèi)試用活動來啦~~米爾提供了3塊價(jià)值678元的MYD-LMX9X開發(fā)板發(fā)起
    的頭像 發(fā)表于 06-13 08:02 ?793次閱讀
    點(diǎn)擊參與米爾NXP i.MX 93<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>

    免費(fèi)!NXP i.MX 93開發(fā)板有獎(jiǎng)試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理的MYD-LMX9X開發(fā)板免費(fèi)試用活動來啦~~米爾提供了2塊價(jià)值678
    的頭像 發(fā)表于 05-23 08:01 ?940次閱讀
    免費(fèi)!NXP i.MX 93<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>
    主站蜘蛛池模板: 黄色绿像一级片 | 午夜寂寞影院视频观看 | 国内精品视频免费观看 | 天天色天天舔 | 在线视频一区二区三区四区 | 一级特级片 | 国产网站在线播放 | 中文字幕在线二区 | 天天操天天干天天玩 | a级毛片网 | 伊人丁香婷婷综合一区二区 | 18黄无遮挡免费视频 | 深爱婷婷网 | 久久久国产精品网站 | 欧美zo| 色妞网站| 一级毛片在线播放 | 在线免费看一级片 | 最黄色的视频 | 综合网视频 | 亚洲一区二区三区免费观看 | 手机亚洲第一页 | 欧美性极品高清 | 亚州怡红院 | 一级片免费看 | 国产色秀视频在线观看 | 天天爽夜夜爽夜夜爽 | 福利午夜最新 | 一级午夜免费视频 | 九九黄色网 | 孩交啪啪网址 | 韩国三级hd中文字幕好大 | 国产中日韩一区二区三区 | 女a男0攻巨肉高h | 国产精品香蕉在线一区 | 你懂的国产精品 | 午夜影视在线免费观看 | 久久综合亚洲 | 亚洲免费黄色网 | 性 色 黄 一级 | 播五月综合 |