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

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

?? psc_drv.c

?? 這是,單片機方面的源碼,大家下哈,這晨只是給大家做個參考
?? C
?? 第 1 頁 / 共 2 頁
字號:
//! @file psc_drv.c,v
//!
//! Copyright (c) 2004 Atmel.
//!
//! Please read file license.txt for copyright notice.
//!
//! @brief This file contains the low level functions for the PSC
//!
//! @version 1.4 at90pwm3-lib-mcu-0_0_2 $Id: psc_drv.c,v 1.4 2005/09/05 08:32:02 ebouin Exp $
//!
//! @todo
//! @bug

//_____  I N C L U D E S ___________________________________________________
#include "lib_mcu/compiler.h"
#include "lib_mcu/psc/psc_drv.h"
#include "lib_mcu/pll/pll_drv.h"

//_____ M A C R O S ________________________________________________________


//_____ P R I V A T E    D E C L A R A T I O N _____________________________


//_____ D E F I N I T I O N ________________________________________________


//_____ D E C L A R A T I O N ______________________________________________

#ifdef USE_PSC0 //!< this define is set on config.h file
//! Configures the PSC0 accordingly to the PSC0 Define Configuration values.
//!
//! @param None.
//!
//! @pre  - Define the configuration in config.h file
//!
//! @post - Set the psc0 comparison values
//!       - Start the PSC0 thanks to Start_psc0() macro
void init_psc0(void)
{
#   if (PSC0_PLL_FREQUENCY == 64)
       Start_pll_64_mega();
#   elif (PSC0_PLL_FREQUENCY == 32)
       Start_pll_32_mega();
#   elif (PSC0_PLL_FREQUENCY == 0)
#   else
#      error (PSC0_PLL_FREQUENCY should be 0, 32, or 64... See config.h file)
#   endif

#   if (PSC0_OUTPUT_SELECTION == 3)
       Enable_both_psc0_outputs();
#   elif (PSC0_OUTPUT_SELECTION == 2)
       Enable_pscout01();
#   elif (PSC0_OUTPUT_SELECTION == 1)
       Enable_pscout00();
#   elif (PSC0_OUTPUT_SELECTION == 0)
       Disable_both_psc0_outputs();
#   else
#      error (PSC0_OUTPUT_SELECTION should be 0, 1, 2, or 2... See config.h file)
#   endif

#   if (PSC0_ACTIVE_STATE == 1)
       Psc0_outputs_active_high();
#   elif (PSC0_ACTIVE_STATE == 0)
       Psc0_outputs_active_low();
#   else
#      error (PSC0_ACTIVE_STATE should be 0, or 1... See config.h file)
#   endif

#   if (PSC0_RAMP_MODE == 4)
       Psc0_in_4_ramps_mode();
#   elif (PSC0_RAMP_MODE == 2)
       Psc0_in_2_ramps_mode();
#   elif (PSC0_RAMP_MODE == 1)
       Psc0_in_1_ramp_mode();
#   elif (PSC0_RAMP_MODE == 0)
       Psc0_in_centered_aligne_mode();
#   else
#      error (PSC0_RAMP_MODE should be 0, 1, 3, or 4... See config.h file)
#   endif

#   if (PSC0_FIFTY_PERCENT_MODE == 1)
       Enable_psc0_fifty_percent_mode();
#   elif (PSC0_FIFTY_PERCENT_MODE == 0)
       Disable_psc0_fifty_percent_mode();
#   else
#      error (PSC0_FIFTY_PERCENT_MODE should be 0, or 1)
#   endif

#   if (PSC0_SYMETRICAL_FLANK_WIDTH_MODULATION == 1)
       Psc0_symetrical_flank_width_modulation();
#   elif (PSC0_SYMETRICAL_FLANK_WIDTH_MODULATION == 0)
       Psc0_end_of_cycle_flank_width_modulation();
#   else
#      error (PSC0_SYMETRICAL_FLANK_WIDTH_MODULATION should be 0, or 1... See config.h file)
#   endif

#   if (PSC0_AUTOLOCK_MODE == 1)
       Enable_psc0_autolock_mode();
#   elif (PSC0_AUTOLOCK_MODE == 0)
       Disable_psc0_autolock_mode();
#   else
#      error (PSC0_AUTOLOCK_MODE should be 0, or 1... See config.h file)
#   endif

#   if (PSC0_PRESCALER_DIVIDER == 64)
       Divide_psc0_input_clock_by_64();
#   elif (PSC0_PRESCALER_DIVIDER == 16)
       Divide_psc0_input_clock_by_16();
#   elif (PSC0_PRESCALER_DIVIDER == 4)
       Divide_psc0_input_clock_by_4();
#   elif (PSC0_PRESCALER_DIVIDER == 0)
       Disable_psc0_prescaler();
#   else
#      error (PSC0_PRESCALER_DIVIDER should be 0, 4, 16, or 64... See config.h file)
#   endif

#   if (PSC0_PLL_FREQUENCY == 64)
       Wait_pll_ready();
       Psc0_use_pll_clock();
#   elif (PSC0_PLL_FREQUENCY == 32)
       Wait_pll_ready();
       Psc0_use_pll_clock();
#   elif (PSC0_PLL_FREQUENCY == 0)
       Psc0_use_io_clock();
#   else
#      error (PSC0_PLL_FREQUENCY should be 0, 32, or 64... See config.h file)
#   endif
}


//! Update all the PSC0 comparison values accordingly to the four values
//! passed as Psc_comparison_values typedef.
//!
//! @param Comparison values via U16.
//!   psc0_comparison_values->deadtime0 (=) U16 deadtime0
//!   psc0_comparison_values->ontime0   (=) U16 ontime0
//!   psc0_comparison_values->deadtime1 (=) U16 deadtime1
//!   psc0_comparison_values->ontime1   (=) U16 ontime1
//!
void update_psc0 ( Psc_comparison_values *psc0_comparison_values )
{
    Lock_psc0_compare_values();
    OCR0SAH = HIGH(psc0_comparison_values->deadtime0);
    OCR0SAL = LOW (psc0_comparison_values->deadtime0);
    OCR0RAH = HIGH(psc0_comparison_values->ontime0);
    OCR0RAL = LOW (psc0_comparison_values->ontime0);
    OCR0SBH = HIGH(psc0_comparison_values->deadtime1);
    OCR0SBL = LOW (psc0_comparison_values->deadtime1);
    OCR0RBH = HIGH(psc0_comparison_values->ontime1);
    OCR0RBL = LOW (psc0_comparison_values->ontime1);
    Update_psc0_compare_values();
}

//! Update half the PSC0 comparison values accordingly to the two values
//! passed as Psc_fifty_percent_comparison_values typedef.
//! This function is usefull if the PSC0 is configured in fifty percent mode
//!
//! @param Comparison values via U16.
//!   psc0_fifty_percent_comparison_values->deadtime1 (=) U16 deadtime1
//!   psc0_fifty_percent_comparison_values->ontime1   (=) U16 ontime1
//!
void update_psc0_fifty ( Psc_fifty_percent_comparison_values *psc0_fifty_percent_comparison_values )
{
    Lock_psc0_compare_values();
    OCR0SBH = HIGH(psc0_fifty_percent_comparison_values->deadtime1);
    OCR0SBL = LOW (psc0_fifty_percent_comparison_values->deadtime1);
    OCR0RBH = HIGH(psc0_fifty_percent_comparison_values->ontime1);
    OCR0RBL = LOW (psc0_fifty_percent_comparison_values->ontime1);
    Update_psc0_compare_values();
}
#endif // USE_PFC0


#ifdef USE_PSC1 //!< this define is set on config.h file
//! Configures the PSC1 accordingly to the PSC1 Define Configuration values.
//!
//! @param None.
//!
//! @pre  - Define the configuration in config.h file
//!
//! @post - Set the psc1 comparison values
//!       - Start the PSC1 thanks to Start_psc1() macro
void init_psc1(void)
{
#   if (PSC1_PLL_FREQUENCY == 64)
       Start_pll_64_mega();
#   elif (PSC1_PLL_FREQUENCY == 32)
       Start_pll_32_mega();
#   elif (PSC1_PLL_FREQUENCY == 0)
#   else
#      error (PSC1_PLL_FREQUENCY should be 0, 32, or 64... See config.h file)
#   endif

#   if (PSC1_OUTPUT_SELECTION == 3)
       Enable_both_psc1_outputs();
#   elif (PSC1_OUTPUT_SELECTION == 2)
       Enable_pscout11();
#   elif (PSC1_OUTPUT_SELECTION == 1)
       Enable_pscout10();
#   elif (PSC1_OUTPUT_SELECTION == 0)
       Disable_both_psc1_outputs();
#   else
#      error (PSC1_OUTPUT_SELECTION should be 0, 1, 2, or 2... See config.h file)
#   endif

#   if (PSC1_ACTIVE_STATE == 1)
       Psc1_outputs_active_high();
#   elif (PSC1_ACTIVE_STATE == 0)
       Psc1_outputs_active_low();
#   else
#      error (PSC1_ACTIVE_STATE should be 0, or 1... See config.h file)
#   endif

#   if (PSC1_RAMP_MODE == 4)
       Psc1_in_4_ramps_mode();
#   elif (PSC1_RAMP_MODE == 2)
       Psc1_in_2_ramps_mode();
#   elif (PSC1_RAMP_MODE == 1)
       Psc1_in_1_ramp_mode();
#   elif (PSC1_RAMP_MODE == 0)
       Psc1_in_centered_aligned_mode();
#   else
#      error (PSC1_RAMP_MODE should be 0, 1, 3, or 4... See config.h file)
#   endif

#   if (PSC1_FIFTY_PERCENT_MODE == 1)
       Enable_psc1_fifty_percent_mode();
#   elif (PSC1_FIFTY_PERCENT_MODE == 0)
       Disable_psc1_fifty_percent_mode();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频网站久久| 亚洲精品美腿丝袜| 欧美伦理影视网| 欧美在线一二三| 欧美在线免费视屏| 欧美在线免费观看亚洲| 欧美日韩亚洲国产综合| 欧美另类videos死尸| 欧美精品vⅰdeose4hd| 4438x成人网最大色成网站| 欧美日韩国产a| 精品成人佐山爱一区二区| 亚洲精品一区二区三区福利| 久久亚洲一区二区三区四区| 中文字幕巨乱亚洲| 亚洲免费成人av| 亚洲va在线va天堂| 久久国产精品免费| 福利电影一区二区| 色哟哟在线观看一区二区三区| 91在线码无精品| 欧美日韩精品三区| 国产三级精品在线| 亚洲国产精品久久人人爱蜜臀| 偷拍日韩校园综合在线| 久久电影网电视剧免费观看| 成人高清视频在线| 欧美人狂配大交3d怪物一区| 久久午夜色播影院免费高清| 亚洲六月丁香色婷婷综合久久| 亚洲成人资源网| 风间由美一区二区三区在线观看 | 日韩一卡二卡三卡四卡| 日韩免费高清av| 亚洲另类春色国产| 韩国成人在线视频| 91在线精品一区二区| 日韩三级视频在线观看| 日韩伦理电影网| 国产在线播放一区三区四| 91蝌蚪国产九色| 日韩精品一区二| 亚洲一卡二卡三卡四卡五卡| 激情成人综合网| 在线播放欧美女士性生活| 欧美国产一区二区| 久久99在线观看| 欧美在线综合视频| 国产精品国产三级国产三级人妇| 秋霞午夜鲁丝一区二区老狼| 色伊人久久综合中文字幕| 国产视频911| 久久99国产精品免费网站| 在线观看日韩高清av| 国产精品美女一区二区| 国产永久精品大片wwwapp| 欧美日韩大陆在线| 亚洲一区二区三区在线看| 国产成人av资源| 久久亚洲一级片| 奇米888四色在线精品| 欧美影视一区在线| 日韩美女啊v在线免费观看| 国产精品自拍av| 26uuu精品一区二区三区四区在线| 亚洲二区在线观看| 欧美日韩视频在线第一区| 亚洲国产日韩a在线播放性色| 91蜜桃免费观看视频| 中文字幕一区三区| 成人在线一区二区三区| 国产精品沙发午睡系列990531| 国产精品一区二区久久精品爱涩| 精品福利二区三区| 国产美女精品人人做人人爽| 久久综合一区二区| 国产麻豆精品一区二区| 久久久久久黄色| 国产99精品国产| 国产精品久线在线观看| 不卡一区在线观看| 亚洲精品国产无天堂网2021 | 久久99国产精品免费网站| 欧美成人一区二区三区片免费| 看电影不卡的网站| 久久久久久99久久久精品网站| 国产精品亚洲人在线观看| 国产精品午夜春色av| 一本一本久久a久久精品综合麻豆| 一区二区三区日韩在线观看| 在线成人av影院| 国产乱码精品一品二品| 亚洲人成人一区二区在线观看 | 午夜精品一区二区三区三上悠亚| 欧美日韩国产首页| 国内精品伊人久久久久av影院| 久久天天做天天爱综合色| 不卡一区二区三区四区| 亚洲综合色噜噜狠狠| 欧美高清你懂得| 国产高清不卡二三区| 综合av第一页| 欧美一区二区三区白人| 国产精品一区二区久激情瑜伽| 中文字幕一区二区三| 欧美日韩国产高清一区二区三区 | 国产精品全国免费观看高清| 日本精品裸体写真集在线观看| 青青国产91久久久久久| 亚洲国产精品成人久久综合一区| 欧美日韩一区二区三区在线看| 蜜桃av一区二区| 最新久久zyz资源站| 欧美美女一区二区三区| 国产精品资源在线观看| 亚洲午夜三级在线| 国产欧美中文在线| 欧美日韩成人一区二区| 丁香天五香天堂综合| 日韩精品每日更新| 亚洲三级免费观看| 2023国产精品| 欧美福利视频一区| 91在线国内视频| 韩日av一区二区| 日本伊人精品一区二区三区观看方式| 欧美激情一区二区三区蜜桃视频| 欧美一区二区三区四区在线观看| 99精品一区二区| 国产成a人亚洲| 久久疯狂做爰流白浆xx| 午夜国产精品一区| 亚洲精选视频在线| 久久看人人爽人人| 日韩一二三区视频| 欧美区一区二区三区| 成人国产亚洲欧美成人综合网| 国产一区二区三区四区在线观看| 五月婷婷综合激情| 亚洲精品视频自拍| 最近日韩中文字幕| 亚洲视频1区2区| 国产精品女同一区二区三区| 久久免费电影网| 2017欧美狠狠色| 日韩欧美亚洲国产精品字幕久久久| 欧美美女黄视频| 欧美精品乱码久久久久久| 在线观看国产一区二区| 91免费在线看| 在线欧美日韩精品| 欧洲激情一区二区| 欧美午夜精品久久久久久孕妇| 色哟哟国产精品免费观看| 91毛片在线观看| 欧美性做爰猛烈叫床潮| 欧美日韩一本到| 91精品国产综合久久精品麻豆| 欧美人体做爰大胆视频| 欧美一区二区成人6969| 日韩欧美一级精品久久| 日韩一二在线观看| 久久久久久免费网| 亚洲国产精品成人综合| 亚洲欧美日韩小说| 亚洲一区二区在线观看视频| 首页综合国产亚洲丝袜| 国产精品18久久久久久久久久久久 | 中文字幕日韩av资源站| 亚洲色图视频免费播放| 亚洲国产日韩一区二区| 美女视频黄久久| 国产成人精品在线看| 91丨九色丨国产丨porny| 色天使久久综合网天天| 欧美日韩高清一区二区三区| 亚洲精品在线免费观看视频| 国产精品亲子乱子伦xxxx裸| 亚洲午夜久久久久久久久电影院| 天天综合网 天天综合色| 激情综合色播激情啊| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美视频在线一区| 精品国产髙清在线看国产毛片| 国产精品入口麻豆九色| 亚洲不卡在线观看| 国产.欧美.日韩| 7777精品伊人久久久大香线蕉经典版下载 | 久久精品欧美一区二区三区麻豆| 国产精品久久久久久久裸模| 亚洲高清中文字幕| 国产精品18久久久久久久久久久久| 色婷婷综合久久久中文一区二区 | 91精品免费在线观看| 欧美激情综合五月色丁香小说| 午夜亚洲福利老司机| 国产成人在线观看免费网站| 在线精品观看国产| 欧美极品美女视频| 精品一区二区三区视频在线观看|