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

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

?? main.c

?? 基于Atmel ATMega88+ATA682的應用實例 主要功能包括: 1) PWM輸出控制 2) H-Bridge,4 POWER FET 驅動 3) 模擬量比較
?? C
字號:
/*
**
****************************************************************************
**
**
**             Copyright (c) 2007 - Atmel Corporation
**             Proprietaty Information
**
** Project    	: ATMEGA88 + ATA6824 High Temperature H-bridge System
** Module     	: main.c
** Description	: High temperature DC motor control
**                To be used with "High temperature H-bridge System board"
**
** Version :     Date:         Author:      Comment:
**    1.0        12.02.2007    F.G.          Creation
**
** LICENSE -
**
** ATMEL - 2007
** All software programs are provided 'as is' without warranty of any kind:
** Atmel does not state the suitability of the provided materials for any
** purpose. Atmel hereby disclaim all warranties and conditions with regard
** to the provided software, including all implied warranties, fitness for
** a particular purpose, title and non-infringement.In no event will Atmel
** be liable for any indirect or consequential damages or any damages
** whatsoever resulting from the usage of the software program.
****************************************************************************
**
*/


/*_____ F U S E S  C O N F I G U R A T I O N ______________________________*/
/* - 8Mhz internal RC Oscillator in being used
 *
 * Caution about MCU start-up time in Fuse configuration :
 * - Care should be taken in Fuse configuration to set up a MCU start-up time
 *   of 0ms or 4.1ms. (By default, it is set to 65ms)
 * - ATA6824 waits a watchdog trigger before typically td = 68ms with 10% tolerance
 * - When no trigger happens during this period of time, MCU is reseted.
 * - Default MCU startup time is set to 65ms, which might be too long regarding
 *   td (68ms ~10%) before a reset occur. MCU won't be able to generate the
 *   WD trig if  td < 65ms. As a result, MCU won't start before being reseted!
 ***************************************************************************/



/*_____ I N C L U D E S ____________________________________________________*/
#include "config.h"
//#include "ADC_task.h"     // ADC used to acquire Motor current, desired speed and Vbat
#include "Timer0_PWM.h"   // Timer0 used to generate PWM and Software time base
#include "ATA6824_defs.h" // ATA6824 specific routines (WD, Diagnostic)
#include "Hall_sensors.h" // Manages hall sensors pin change interrupts (PCINT0)
//#include "an_compare.h"   // Detects over current condition


/*_____ M A C R O S ________________________________________________________*/
/*_____ D E F I N I T I O N S ______________________________________________*/
//! @defgroup Motor_control Motor status definitions
//! Used in main() to manage DC motor
//! @{
typedef enum
{
  MOTOR_STATUS_STOPPED,   //!< Motor stopped status
  MOTOR_STATUS_CW,        //!< Motor running CW
  MOTOR_STATUS_CCW        //!< Motor running CCW
} Motor_ctrl_t;           //!< Type used to manage motor
//! @}

/*_____ P R O T O T Y P E S - D E C L A R A T I O N ________________________*/
void display_defaults(void);  // Fault output on LEDs


/*_____ G L O B A L S ______________________________________________________*/

/**
 * @fn main manages ADC acquisitions, time base, watchdog refresh, motor
 * operation, fault display and clear.
 **/
void main(void)
{
 // Motor_ctrl_t motor_status = MOTOR_STATUS_STOPPED;

  CLKPR   = 0x80;
  CLKPR   = 0x00;                 // No system clock prescaler
  CONFIG_IO_PORTS();              // Configure I/O ports

  //ADC_Init();                     // initialize ADC
  Timer0_start();                 // Starts Timer 0 for a 31250Hz PWM and
                                  // time management.
  Hall_sensors_ISR_init();        // Configures Pin change interrupts (PCINT0)
  Diag_inputs_ISR_init();         // Configures DG1/2/3 pin change interrupts (PCINT1)
  //AN_compare_init();              // Configures over-current detection through
                                  // analog comparator

  SET_WD_TRIG();                  // 1st watchdog refresh

  __enable_interrupt();           // enable interrupts

  while(1)                        // End-less loop
  {
  //  ADC_task();                   // Manage ADC acquisitions
    manage_time_base();           // Manage time base
    refresh_ATA6824_watchdog();   // Refresh ATA6824 Watchdog

    /* Motor management */
/*    switch(motor_status)
    {
      //--------------------------------------------------------------------
      case MOTOR_STATUS_STOPPED:                        // Motor is stopped
        if (GET_SWITCH_CW())
        {
          SET_MOTOR_DIR();                              // Set motor direction
          TIMER0_SET_OC0B_PWM((U8)((adc_get_speed()>>2)));  // Update PWM ratio
          motor_status = MOTOR_STATUS_CW;
        }
        else if (GET_SWITCH_CCW())
        {
          RESET_MOTOR_DIR();                            // Reset motor direction
          TIMER0_SET_OC0B_PWM((U8)((adc_get_speed()>>2)));  // Update PWM ratio
          motor_status = MOTOR_STATUS_CCW;
        }
        else
          TIMER0_SET_OC0B_PWM(0x00);                    // Set PWM ratio to zero
        break;

      //--------------------------------------------------------------------
      case MOTOR_STATUS_CW:                             // Motor runs Clockwise
      case MOTOR_STATUS_CCW:                            // Motor runs counter clockwise

        if (!GET_SWITCH_CW() && !GET_SWITCH_CCW())      // Stop command from switch
        {
          TIMER0_SET_OC0B_PWM(0x00);                    // Set PWM ratio to zero
          motor_status = MOTOR_STATUS_STOPPED;          // Update motor status
        }
        else
          TIMER0_SET_OC0B_PWM((U8)((adc_get_speed()>>2)));  // Update PWM ratio
        break;

      //--------------------------------------------------------------------
      default:
        motor_status = MOTOR_STATUS_STOPPED;
        TIMER0_SET_OC0B_PWM(0x00);                    // Set PWM ratio to zero
        break;
    }
*/
    // Default display on LEDs
    display_defaults();

    // Clear faults when Release push-button is pushed and faults no more remain
    if (GET_RELEASE_BP())
      clear_faults();       // Clear not remaining faults (latched by software)
  };
}



/*! @brief display_defaults signals to the user that diagnostics have detected
 *  a fault. It displays it on corresponding LED.
 *  Two faults are software latched. When those faults have been latched, the
 *  corresponding LEDs is/are set ON. Those are cleared when faults are unlatched
 *  The DG3 over-temperature doesn't need to be latched. As long as it's present
 *  the corresponding LED is toogled, then cleared if it's not present.
 */
void display_defaults(void)
{
  // Display short-cicuit detected (latched DG1 signal)
  if (ATA6824_diag_mgt.dg1 != NO_FAILURE)    SET_DG1_LED();
  else                                       RESET_DG1_LED();

  // Display pump charge failure, undervoltage or overvoltage detected (latched DG2 signal)
  if (ATA6824_diag_mgt.dg2 != NO_FAILURE)    SET_DG2_LED();
  else                                       RESET_DG2_LED();

  // Toggle DG3_LED in over-temperature conditions
  if (time_count_1s.ovf == true)
  {
    if (ATA6824_diag_mgt.dg3 != NO_FAILURE)
      TOGGLE_DG3_LED();
    else
      RESET_DG3_LED();
    time_count_1s.ovf = false;  // Clear 1s overflow flag
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线成人小视频| 日韩午夜激情av| 国产精品久久久久影院亚瑟| 加勒比av一区二区| 91精品国产乱码久久蜜臀| 午夜精品福利一区二区蜜股av| av男人天堂一区| 亚洲精品一二三区| 欧美中文字幕不卡| 亚洲一区二区三区精品在线| 日本高清不卡一区| 亚洲综合一区二区| 日韩一级高清毛片| 韩国av一区二区三区在线观看| 精品国产一区二区在线观看| 国产精品1024| 亚洲精品欧美激情| 欧美高清视频在线高清观看mv色露露十八| 午夜不卡av免费| 欧美一二三四区在线| 黄网站免费久久| 麻豆成人在线观看| 欧美大尺度电影在线| 国产成人鲁色资源国产91色综| 中文字幕亚洲一区二区av在线| 在线观看日韩av先锋影音电影院| 亚洲国产乱码最新视频| 日韩一区二区免费视频| 国产乱码精品一区二区三区忘忧草| 中文字幕久久午夜不卡| 日本电影欧美片| 美国毛片一区二区| 亚洲视频综合在线| 欧美剧在线免费观看网站| 国产乱色国产精品免费视频| 国产精品九色蝌蚪自拍| 欧美一区二区私人影院日本| 国产成人免费av在线| 亚洲与欧洲av电影| 日韩精品中文字幕一区二区三区 | 日日欢夜夜爽一区| 久久久久88色偷偷免费| 91国产成人在线| 国产一区二区三区av电影| 亚洲区小说区图片区qvod| 制服丝袜亚洲播放| 99精品国产91久久久久久 | 制服.丝袜.亚洲.另类.中文| 国产一区二区不卡| 午夜欧美视频在线观看| 亚洲欧美综合色| 日韩精品一区二区在线| 91久久香蕉国产日韩欧美9色| 久久99国产精品免费| 亚洲一区二区精品久久av| 国产日产精品1区| 91精品国产色综合久久久蜜香臀| 成人18视频在线播放| 精品一区二区久久久| 午夜亚洲福利老司机| 亚洲免费在线看| 中文字幕av资源一区| 精品国产免费人成在线观看| 欧美日韩三级一区| 色噜噜狠狠色综合欧洲selulu| 国产精品一区二区免费不卡 | 日本色综合中文字幕| 亚洲精品一二三| 中文字幕一区二区三区色视频| 精品国产制服丝袜高跟| 欧美一级片在线看| 欧美男生操女生| 91精彩视频在线观看| 99国产精品久久久久久久久久| 国产电影一区在线| 久久av老司机精品网站导航| 日日骚欧美日韩| 亚洲成av人片一区二区三区| 亚洲精品国产精华液| 国产精品久久久久精k8| 欧美精彩视频一区二区三区| 国产日韩欧美一区二区三区乱码 | 日韩一卡二卡三卡四卡| 日本韩国视频一区二区| 91在线视频在线| 色综合中文字幕国产| 国产91精品一区二区麻豆网站| 精彩视频一区二区| 国产精品一二三| 成人av在线资源| av电影天堂一区二区在线观看| 成人黄色a**站在线观看| 99在线精品一区二区三区| www.亚洲免费av| 91色视频在线| 欧美伊人久久久久久久久影院 | 欧美a级一区二区| 青青草原综合久久大伊人精品 | 亚洲日本va午夜在线影院| 亚洲日本在线视频观看| 一区二区三区四区国产精品| 亚洲高清三级视频| 久久精品国产第一区二区三区| 精品一区二区三区蜜桃| 成人教育av在线| 一本色道久久综合亚洲91| 91精品1区2区| 日韩限制级电影在线观看| 精品少妇一区二区三区在线视频 | 国产91色综合久久免费分享| 99久久免费视频.com| 在线看日韩精品电影| 欧美一区二区黄| 久久久噜噜噜久噜久久综合| 国产精品污www在线观看| 亚洲精品高清在线| 日韩av午夜在线观看| 国产综合久久久久影院| av电影在线观看一区| 91麻豆精品国产自产在线| 欧美精品一区二区三区视频| 国产精品灌醉下药二区| 午夜一区二区三区视频| 国产综合色在线视频区| 91激情在线视频| 日韩精品在线看片z| 国产精品国产三级国产aⅴ入口 | 亚洲精品少妇30p| 免费在线观看日韩欧美| 高清在线成人网| 欧美日韩国产一级二级| 国产欧美日韩一区二区三区在线观看| 最新久久zyz资源站| 麻豆传媒一区二区三区| 91麻豆免费视频| 2023国产精品视频| 亚洲国产成人91porn| 成人av在线一区二区三区| 欧美一级国产精品| 亚洲男人的天堂一区二区| 韩国成人精品a∨在线观看| 欧美写真视频网站| 亚洲国产激情av| 日本不卡免费在线视频| av亚洲精华国产精华精华| 精品久久久久香蕉网| 一区二区三区四区五区视频在线观看| 国内精品伊人久久久久影院对白| 色噜噜夜夜夜综合网| 中文字幕不卡的av| 国产一区二区三区在线观看免费视频| 欧美日韩精品一区视频| 亚洲欧美日韩中文字幕一区二区三区 | www.成人网.com| 久久久久久免费| 免费不卡在线视频| 欧美日韩精品系列| 亚洲欧美激情小说另类| www.欧美.com| 国产亚洲成年网址在线观看| 美女尤物国产一区| 欧美一区在线视频| 亚洲成人福利片| 欧美制服丝袜第一页| 一区二区三区在线免费播放| 菠萝蜜视频在线观看一区| 国产三级三级三级精品8ⅰ区| 久久国产麻豆精品| 精品剧情在线观看| 精品亚洲成a人| 亚洲精品一区在线观看| 韩国欧美国产一区| 精品国产欧美一区二区| 国产一区二区三区高清播放| 精品国产乱码久久久久久牛牛 | 欧美一区在线视频| 免费在线观看成人| 欧美zozozo| 狠狠色丁香婷婷综合| 精品国产欧美一区二区| 国产成人99久久亚洲综合精品| 久久亚洲捆绑美女| 福利一区二区在线| 综合婷婷亚洲小说| 欧美四级电影网| 日韩av在线播放中文字幕| 日韩美女在线视频| 国产成人在线视频网站| 国产免费久久精品| av高清不卡在线| 91麻豆国产精品久久| 亚洲男人的天堂av| 91精品国产综合久久久久| 免费在线观看精品| 国产女人18水真多18精品一级做| 成人理论电影网| 亚洲综合激情网| 日韩欧美一级二级三级| 国产成人一级电影| 亚洲你懂的在线视频|