亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? analog_timer.c

?? 有關ATMEL AT91系列CPU的驅動函數庫
?? C
字號:
//*----------------------------------------------------------------------------
//*      ATMEL Microcontroller Software Support  -  ROUSSET  -
//*----------------------------------------------------------------------------
//* The software is delivered "AS IS" without warranty or condition of any
//* kind, either express, implied or statutory. This includes without
//* limitation any warranty or condition with respect to merchantability or
//* fitness for any particular purpose, or against the infringements of
//* intellectual property rights of others.
//*----------------------------------------------------------------------------
//* File Name           : analog_timer.c
//* Object              : Analog timer functions Library.
//*
//* 1.0 31/08/00 JPP    : Creation
//*----------------------------------------------------------------------------

#include    "periph/stdc/std_c.h"
#include    "periph/timer_counter/lib_tc.h"
#include    "drivers/analog/analog.h"
#include    "drivers/com/com.h"
//#include    <stdio.h>

//*----------------------------------------------------------------------------
//* Function Name       : at91_analog_c_handler_timer
//* Object              : C handler interrup function called by the interrups
//*                       assembling routine
//* Input Parameters    : <Irq Descriptor> Analog DAC Interrupt descriptor
//* Output Parameters   : none
//*----------------------------------------------------------------------------
void at91_analog_c_handler_timer(AnalogDACTimerIrqDesc *desc)
//* Begin
{
    u_int tmp;

    //* Write the current value in the DAC
    desc->dac->dac_base->DAC_DHR = *(desc->pdc.cur_add);

    if (desc->pdc.cur_cmpt !=0)
    {
       desc->pdc.cur_add++;
       desc->pdc.cur_cmpt--;
    }
    else
    {
       desc->pdc.cur_add = desc->pdc.base_add ;
       desc->pdc.cur_cmpt= desc->pdc.base_cmpt;
    } //* End Update

    //* -- Deasert timer interrupt by read Status register (TC_SR)
    tmp =desc->timer->tc_base->TC_SR ;
//* End
}
//*----------------------------------------------------------------------------
//* Function Name       : at91_analog_init_timer
//* Object              : Timer initialisation for analog trigger without irq
//*                       use TIOA for DAC/ADC sampling
//*                       use TIOB for external trig (for test)
//*           _____         ____________
//*                |_______|            |_________
//*                 RA val      RC val               TIOA
//*                 RB val      RC val
//*
//* Input Parameters    : <TC_pt> timer descriptor
//*                       <tioc>  timer comparator value
//*                       <tc_div> timer MCKI divisor
//* Output Parameters   : none
//*----------------------------------------------------------------------------
void at91_analog_init_timer(const TCDesc *TC_pt, int tioc, int tc_div)
//* Begin
{

    u_int   mode_tc;
    u_int   regtc[3] ;

    // Initialize the mode of the timer
    mode_tc =
        TC_WAVE                 |   // WAVE   : Waveform mode
        TC_ENETRG               |   // ENETRG : Enable Trigger on External Event
        TC_CPCTRG               |   // CPCTRG : Register C compare trigger enable
        TC_AEEVT_CLEAR_OUTPUT   |   // External Event Effect on TIOA
        TC_BEEVT_CLEAR_OUTPUT   |   // External Event Effect on TIOB
        TC_BCPC_SET_OUTPUT      |   // RC Compare Effect on TIOB
        TC_BCPB_CLEAR_OUTPUT    |   // RB Compare Effect on TIOB
        TC_EEVT_XC0             |   // External Event Selection
        TC_EEVTEDG_FALLING_EDGE |   // External Event Edge Selection
        TC_ACPA_SET_OUTPUT      |   // RA Compare Effect on TIOA
        TC_ACPC_CLEAR_OUTPUT    |   // RC Compare Effect on TIOA
        TC_ASWTRG_CLEAR_OUTPUT  |   // ASWTRG   : software trigger clears TIOA
        TC_BSWTRG_CLEAR_OUTPUT ;    // BSWTRG   : software trigger clear  TIOB

    // set the clock divisor CLKS_MCK
    // tc_div = TC_CLKS_MCK2 or TC_CLKS_MCK4 or TC_CLKS_MCK8 ...
    mode_tc |= tc_div;

    //* -- Initialize the compare registers of the timer
    regtc[0] = 0x0002;       //* First Value  -> Register A  TIOA
    regtc[1] = 0x0002;       //* Second Value -> Register B TIOB
    regtc[2] = tioc;         //* Third Value  -> Register C  Comparator
    //* -- Configure Timer TIOA and TIOB as output
    at91_tc_open ( TC_pt, mode_tc, TRUE, TRUE ) ;

    //* Write Timer Counter Register
    at91_tc_write ( TC_pt, regtc ) ;
//* End
}
//*----------------------------------------------------------------------------
//* Function Name       : at91_analog_open_timer_irq
//* Object              : Timer initialisation for analog trigger with irq
//* Input Parameters    : <TC_pt> timer descriptor
//*                       <tioc>  timer comparator value
//*                       <tc_div> timer MCKI divisor
//*                       <data>  Input table pointer for software PDC
//*                       <nb_point>  Input table size for software PDC
//* Output Parameters   : none
//*----------------------------------------------------------------------------
void at91_analog_open_timer_irq(AnalogDACTimerIrqDesc *DAC_pt, int tioc, int tc_div,const u_short * data,u_int nb_point)
//* Begin
{
    //* Set the timer value
    at91_analog_init_timer(DAC_pt->timer,tioc,tc_div);

    //* set Software PDC param
    DAC_pt->pdc.base_add = (u_short *) data;
    DAC_pt->pdc.cur_add = (u_short *)data;
    DAC_pt->pdc.base_cmpt = nb_point-1;
    DAC_pt->pdc.cur_cmpt = nb_point-1;

    //* Open the interrupt on the AIC
    at91_irq_open ( DAC_pt->timer->periph_id, 7, AIC_SRCTYPE_INT_EDGE_TRIGGERED,  DAC_pt->AsmDacHandler ) ;
    //* Enable the RC Compare interrupt
    DAC_pt->timer->tc_base->TC_IER = TC_CPCS ;

    //* -- Software Trigger on Timer
    //* -- generates a software trigger simultaneously for each of the channels.
    at91_tc_trig_cmd ( DAC_pt->timer, TC_TRIG_CHANNEL ) ;
//* End
}
//*----------------------------------------------------------------------------
//* Function Name       : at91_analog_init_timer
//* Object              : Timer initialisation for analog trigger without irq
//* Input Parameters    : <TC_pt> timer descriptor
//*                     : <tioc>  timer comparator value
//*                     : <tc_div> timer MCKI divisor
//* Output Parameters   : none
//*----------------------------------------------------------------------------
void at91_analog_open_timer(const TCDesc *TC_pt, int tioc, int tc_div)
//* Begin
{

    //* Set the timer value
    at91_analog_init_timer(TC_pt,tioc,tc_div);

    //* Enable the RC Compare interrupt
    TC_pt->tc_base->TC_IER = TC_CPCS ;

    //* -- Software Trigger on Timer
    //* -- generates a software trigger simultaneously for each of the channels.
    at91_tc_trig_cmd ( TC_pt, TC_TRIG_CHANNEL ) ;
//* End
}

//*----------------------------------------------------------------------------
//* Function Name       : at91_analog_close_timer
//* Object              : Timer close  for analog trigger
//* Input Parameters    : <TC_pt> timer descriptor
//* Output Parameters   : none
//*----------------------------------------------------------------------------
void at91_analog_close_timer(const TCDesc *TC_pt)
//* Begin
{
    //* Close the interrupt on the AIC
     at91_irq_close ( TC_pt->periph_id ) ;

    //* -- close Timer
    at91_tc_close( TC_pt) ;


//* End
}
//* End of file

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久99精品一区| 国产日韩高清在线| 国产成人高清在线| 日本欧美在线看| 日韩精品一级中文字幕精品视频免费观看| 欧美丰满美乳xxx高潮www| 国产69精品久久99不卡| 亚洲二区在线视频| 777a∨成人精品桃花网| caoporen国产精品视频| 免费看日韩a级影片| 亚洲日本青草视频在线怡红院| 4438x成人网最大色成网站| 国产成人a级片| 麻豆成人久久精品二区三区小说| 亚洲精品免费在线| 欧美国产乱子伦 | 国产性做久久久久久| 欧美一级一级性生活免费录像| 成人国产亚洲欧美成人综合网| 亚洲国产一区二区三区青草影视| 国产欧美va欧美不卡在线| 久久综合国产精品| 26uuu亚洲综合色| 精品国产乱码久久久久久蜜臀| 国产午夜精品久久久久久免费视 | 久久精品亚洲国产奇米99| 日韩欧美国产系列| 欧美变态tickle挠乳网站| 欧美日韩一二区| 日本韩国欧美在线| 色94色欧美sute亚洲线路一久| 成人av中文字幕| 在线中文字幕一区| 日韩美女视频一区二区在线观看| 欧美一级二级在线观看| 久久久国产午夜精品| 中文字幕第一区| 国产日韩欧美不卡| 亚洲欧洲另类国产综合| 亚洲黄网站在线观看| 一区二区三区四区在线播放| 亚洲一区二区三区四区在线| 秋霞午夜av一区二区三区| 精品一区中文字幕| 91美女蜜桃在线| 欧美日韩三级视频| 26uuu国产电影一区二区| 亚洲精品在线观看网站| 欧美国产日产图区| 精品影视av免费| 欧美亚洲日本一区| 2024国产精品视频| 午夜国产精品影院在线观看| 国产一区二区免费视频| 91麻豆精东视频| 日韩欧美一级二级三级久久久 | 3d成人动漫网站| 久久精品日产第一区二区三区高清版 | 91网站最新网址| 国产精品青草久久| 国产精品99久久久久久久vr | 99re热视频精品| 91精品国产一区二区三区| 亚洲精品欧美专区| 色综合久久99| 日韩码欧中文字| 懂色中文一区二区在线播放| 日韩精品中文字幕在线不卡尤物| 亚洲成人免费影院| 91麻豆成人久久精品二区三区| 欧美一级艳片视频免费观看| 一区二区三区四区国产精品| 91麻豆高清视频| 亚洲高清一区二区三区| 欧美系列亚洲系列| 丝袜美腿亚洲一区二区图片| 欧美日韩国产片| 亚洲第一会所有码转帖| 宅男在线国产精品| 青青草国产精品亚洲专区无| 欧美亚洲愉拍一区二区| 夜夜亚洲天天久久| 欧美肥妇free| 国模大尺度一区二区三区| 91精品国产品国语在线不卡| 美腿丝袜亚洲色图| 久久久99精品久久| bt欧美亚洲午夜电影天堂| 亚洲三级免费电影| 欧美少妇一区二区| 午夜视频在线观看一区二区| 欧美日韩成人综合天天影院| 日本美女视频一区二区| 精品国产青草久久久久福利| 六月丁香婷婷色狠狠久久| 亚洲国产高清不卡| 欧美日韩视频第一区| 国产精品伊人色| 亚洲欧美国产三级| 欧美吞精做爰啪啪高潮| 亚洲图片欧美视频| 中文字幕日本不卡| 欧美一区二区黄色| 91福利在线看| 国产99精品视频| 日本在线不卡视频一二三区| 精品国产区一区| 国产精品一区免费视频| 中文字幕一区二区三区av | 福利一区福利二区| 午夜精品免费在线观看| 亚洲四区在线观看| 国产欧美一区二区精品秋霞影院| 欧美午夜精品久久久久久孕妇| 国产精品一二二区| 人人狠狠综合久久亚洲| 一区二区三区在线视频播放| 国产亚洲制服色| 欧美sm极限捆绑bd| 色av综合在线| 99r国产精品| 色综合天天综合狠狠| 大胆欧美人体老妇| 国产乱子轮精品视频| 精品制服美女丁香| 日韩av网站在线观看| 亚洲国产精品久久一线不卡| 中文字幕一区二区三区不卡| 成人免费在线观看入口| 亚洲天堂免费看| 亚洲线精品一区二区三区| 亚洲综合久久久| 经典一区二区三区| www.在线成人| 一本色道**综合亚洲精品蜜桃冫| 处破女av一区二区| av不卡一区二区三区| 在线视频你懂得一区二区三区| 91香蕉视频在线| 91丝袜国产在线播放| 欧美日韩视频在线一区二区| 欧美日韩一区二区在线观看视频| 欧亚一区二区三区| 91精选在线观看| 亚洲欧洲制服丝袜| 亚洲在线成人精品| 亚洲成人777| 加勒比av一区二区| 色综合 综合色| 精品国产乱码91久久久久久网站| 国产精品国产三级国产aⅴ无密码| 日韩美女久久久| 国产精品自拍网站| 欧美精品一级二级| 亚洲欧美激情小说另类| 国产一区二区三区四区在线观看| 欧美丝袜丝nylons| 亚洲欧美中日韩| 国产在线播放一区三区四| 欧美色综合影院| 亚洲精品久久久久久国产精华液| 免费高清成人在线| 成人免费看的视频| 欧美一卡2卡3卡4卡| 亚洲国产三级在线| 欧美亚洲综合色| 一区二区三区中文字幕电影| 成人污视频在线观看| 亚洲精品一区二区三区蜜桃下载 | 91精品综合久久久久久| 一区二区三区在线影院| 99久久久无码国产精品| 国产精品久久久久久久久果冻传媒 | 中文字幕一区二区三区不卡在线| 国产在线视频一区二区| 久久夜色精品国产噜噜av| 久久精品国产999大香线蕉| 日韩免费看网站| 狠狠色狠狠色综合日日91app| 2021国产精品久久精品| 国内精品写真在线观看| 国产欧美一区视频| 成人晚上爱看视频| 亚洲欧美偷拍另类a∨色屁股| www.亚洲色图.com| 偷拍与自拍一区| 欧美日韩精品欧美日韩精品一| 国产精品一区二区不卡| 日本三级亚洲精品| 艳妇臀荡乳欲伦亚洲一区| 国产亚洲美州欧州综合国| 欧美三级资源在线| 丁香五精品蜜臀久久久久99网站 | 精品亚洲成a人在线观看| 亚洲综合免费观看高清完整版| 2020国产精品自拍| 欧美日韩激情一区| 国内精品伊人久久久久av影院 | 精品国精品自拍自在线|