久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2328|回復: 1
打印 上一主題 下一主題
收起左側

stm8 tim1 如何實現定時 不明白都不行

[復制鏈接]
跳轉到指定樓層
樓主
ID:7209 發表于 2016-10-14 14:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/* MAIN.C file
*
* Copyright (c) 2002-2016 STMicroelectronics
*/



/***
曾經給TIM1  捏了無數次,希望能幫到后來的兄弟免遭揉捏之苦,我將持續分析TIM1 的東西發上來給大家共同學習,保障每次一看就明白。


*/
#include "stm8s105c4.h"
void gpio_init(void);
void tim1_init(void);
void delay(unsigned int time);

void gpio_init(void)
{
                PB_ODR |=0X01;
                PB_DDR |=0X01;
                PB_CR1 |=0X01;
                PB_CR2 |=0X01;
}

void tim1_init()
{
                //設置預分頻 系數
                TIM1_PSCRH = 0;
                TIM1_PSCRL = 19;
                //默認系統時鐘 2Mhz  2000.000/20 = 100khz
                //周期 1/100.000 = 0.00001s
                //開啟溢出中斷
                TIM1_IER = 0X01;
                //設置定時值
                TIM1_ARRH = (unsigned char) (5000>>8);
                TIM1_ARRL = (unsigned char )5000;
                //設置定時器初值
                TIM1_CNTRH = (unsigned char) (5000>>8);
                TIM1_CNTRL = (unsigned char )5000;
//這產生1 HZ 的方波  高電平500ms  低電平500毫秒
/*
*  50000 從什么地方毛出來的 是預裝載值
*  50000 =定時時間 / 周期
*  比如想 產生10HZ 的方波   
*   1/10HZ = 0.1s  就是50ms高電平 50ms低電平
*  0.05s/0.00001s = 5000
*  裝載值 = 5000
*  0.00001s 從哪里來的啊啊啊啊
*  系統默認是 內部時鐘 2mhz   2000.000/(19+1) = 100KHZ
*  1/100KZH = 0.00001s
*  

*/


}
void delay(unsigned int time)
{
                while(time--);
}

void  main()
{
               
               
                gpio_init();
                tim1_init();
                TIM1_CR1 |=0X01;
                _asm("rim");
          while (1);
}


@far @interrupt void TIM1_OVF_IRQ(void)
{
                TIM1_SR1 &= 0XFE;
                PB_ODR ^=0X01;  //取反 PB0
}


記得修改中斷 11 ,否則還是不行的。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:7209 發表于 2016-10-14 14:14 | 只看該作者
還是把,中斷這部分發上來,否則,還真有人,實驗不通過
/*        BASIC INTERRUPT VECTOR TABLE FOR STM8 devices
*        Copyright (c) 2007 STMicroelectronics
*/

typedef void @far (*interrupt_handler_t)(void);

struct interrupt_vector {
        unsigned char interrupt_instruction;
        interrupt_handler_t interrupt_handler;
};

@far @interrupt void NonHandledInterrupt (void)
{
        /* in order to detect unexpected events during development,
           it is recommended to set a breakpoint on the following instruction
        */
        return;
}

extern void _stext();     /* startup routine */

extern @far @interrupt void TIM1_OVF_IRQ(void);



struct interrupt_vector const _vectab[] = {
        {0x82, (interrupt_handler_t)_stext}, /* reset */
        {0x82, NonHandledInterrupt}, /* trap  */
        {0x82, NonHandledInterrupt}, /* irq0  */
        {0x82, NonHandledInterrupt}, /* irq1  */
        {0x82, NonHandledInterrupt}, /* irq2  */
        {0x82, NonHandledInterrupt}, /* irq3  */
        {0x82, NonHandledInterrupt}, /* irq4  */
        {0x82, NonHandledInterrupt}, /* irq5  */
        {0x82, NonHandledInterrupt}, /* irq6  */
        {0x82, NonHandledInterrupt}, /* irq7  */
        {0x82, NonHandledInterrupt}, /* irq8  */
        {0x82, NonHandledInterrupt}, /* irq9  */
        {0x82, NonHandledInterrupt}, /* irq10 */
        {0x82, TIM1_OVF_IRQ}, /* irq11 */
        {0x82, NonHandledInterrupt}, /* irq12 */
        {0x82, NonHandledInterrupt}, /* irq13 */
        {0x82, NonHandledInterrupt}, /* irq14 */
        {0x82, NonHandledInterrupt}, /* irq15 */
        {0x82, NonHandledInterrupt}, /* irq16 */
        {0x82, NonHandledInterrupt}, /* irq17 */
        {0x82, NonHandledInterrupt}, /* irq18 */
        {0x82, NonHandledInterrupt}, /* irq19 */
        {0x82, NonHandledInterrupt}, /* irq20 */
        {0x82, NonHandledInterrupt}, /* irq21 */
        {0x82, NonHandledInterrupt}, /* irq22 */
        {0x82, NonHandledInterrupt}, /* irq23 */
        {0x82, NonHandledInterrupt}, /* irq24 */
        {0x82, NonHandledInterrupt}, /* irq25 */
        {0x82, NonHandledInterrupt}, /* irq26 */
        {0x82, NonHandledInterrupt}, /* irq27 */
        {0x82, NonHandledInterrupt}, /* irq28 */
        {0x82, NonHandledInterrupt}, /* irq29 */
};
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人片网址 | 在线日韩 | 91私密视频 | 精品久久99 | 精品国产乱码久久久久久蜜柚 | 亚洲色图50p| 欧美久久一区二区三区 | 天堂视频中文在线 | 99这里只有精品视频 | 日韩高清一区 | 亚洲综合国产 | 在线āv视频 | 欧美在线a | 国产成人99久久亚洲综合精品 | 久久久激情视频 | 亚洲码欧美码一区二区三区 | 久久极品 | 五月天天丁香婷婷在线中 | 日韩欧美成人一区二区三区 | 日韩字幕一区 | 国产精品欧美精品日韩精品 | 国产精品视频在线观看 | 成人在线一区二区 | 91精品中文字幕一区二区三区 | av高清毛片 | 韩国久久 | 蜜桃免费一区二区三区 | 日本在线免费视频 | 国产免费黄网 | 99精品视频在线观看免费播放 | 日韩免费福利视频 | 亚洲欧美一区二区三区国产精品 | 91精品国产91 | 国产精品日韩一区二区 | 日韩中文字幕 | 久国产 | 一级黄色片一级黄色片 | 国产精品不卡一区 | 欧美精品久久久久 | 亚洲五码久久 | 亚洲一区二区免费视频 |