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

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

?? io.c

?? 1開放源碼的CanOpen(C)
?? C
字號:
/**************************************************************************
MODULE:    IO
CONTAINS:  IO functions for Atmel CANopen Demo Board
           Board is a CANgine board - see www.cangine.com
COPYRIGHT: Embedded Systems Academy, Inc. 2003.
           All rights reserved. www.microcanopen.com
           This software was written in accordance to the guidelines at
		   www.esacademy.com/software/softwarestyleguide.pdf
DISCLAIM:  Read and understand our disclaimer before using this code!
           www.esacademy.com/disclaim.htm
LICENSE:   Users that have purchased a license for PCANopenMagic
           (www.esacademy.com/software/pcanopenmagic)
           may use this code in commercial projects.
           Otherwise only educational use is acceptable.
VERSION:   1.00, Pf/Aa/Ck 28-MAY-03
---------------------------------------------------------------------------
HISTORY:   1.00, Pf 07-OCT-02, First Published Version
***************************************************************************/ 

#include "mco.h"
#include "mcohw.h"
#include <Reg51cc01.h>


#define T1_RELOAD 89 // Timer 1 reload = 0.05us at 20Mhz
#define INC_VAL 2 // In timer ISR, joystick values are incremented by this

// The process data from main, is updated in timer ISR
#ifdef JOYSTICK
extern WORD data ProcX;
extern WORD data ProcY;
#endif
extern WORD data ProcZ;

// PWM output on LEDs, value 0-16
BYTE LED_up = 0;
BYTE LED_down = 0;
BYTE LED_right = 0;
BYTE LED_left = 0;
BYTE LED_ana = 0;
BYTE cnt = 0; // count from 0 to 64 as comparison for values above

bit mXClr; // detect if both X buttons pressed
bit mYClr; // detect if both Y buttons pressed
bit mToggle; // toggle for timer ISR


#ifndef ENCODER // Not needed for the encoder example
/**************************************************************************
DOES: Byte swapping (big-endian to little-endian conversion
**************************************************************************/
WORD IO_ByteSwap (WORD val)
{
unsigned int rval;

  ((BYTE *) &rval) [0] = ((BYTE *) &val) [1];
  ((BYTE *) &rval) [1] = ((BYTE *) &val) [0];

  return (rval);
}
#endif

/**************************************************************************
DOES: Converts a value from 0 to 0x7FFF to 0,1,2,4,8,16,32,64
      Needed for the LED fading
**************************************************************************/
BYTE ConvertLEDValue (WORD val)
{
  val &= 0x7FFF; // ensure value range 0 to 0x7FFF
  val >>= 12; // transform to range 0 to 7
  if (val == 0)
    return 0;
  else
    return (BYTE) (1 << (val-1));
}


/**************************************************************************
DOES: Implements the LED fading / PWM
**************************************************************************/
void SwitchLEDs (void)
{
#ifdef JOYSTICK
  if (cnt < LED_left)
    P0_0 = 0;
  else
    P0_0 = 1;
  if (cnt < LED_right)
    P0_1 = 0;
  else
    P0_1 = 1;
  if (cnt < LED_down)
    P0_2 = 0;
  else
    P0_2 = 1;
  if (cnt < LED_up)
    P0_3 = 0;
  else
    P0_3 = 1;
#endif // JOYSTICK
  if (cnt < LED_ana)
    P1_7 = 0;
  else
    P1_7 = 1;
  cnt++;
  if (cnt >= 64)
    cnt = 0;
}


/**************************************************************************
DOES: Checks all buttons and the potentiometer
**************************************************************************/
void ReadInputs (void)
{
#ifdef JOYSTICK
  if (mYClr) // Both buttons were pressed, reset sequence started
  { // wait until both buttons are released
    if ((P2_0 == 1) && (P2_1 == 1))
	{
	  mYClr = 0;
	}
  }
  else
  {
    if (P2_0 == 0) // Down button pressed
    {
      if (ProcY >= INC_VAL)
        ProcY -= INC_VAL;
    }
    if (P2_1 == 0) // Up button pressed
    {
      if (ProcY <= (0xFFFF - INC_VAL))
        ProcY += INC_VAL;
    }
  }
  if ((P2_0 == 0) && (P2_1 == 0))
  { // Up and Down pressed
    ProcY = 0x8000;
    mYClr = 1;
  }

  if (mXClr) // Both buttons were pressed, reset sequence started
  { // wait until both buttons are released
    if ((P2_2 == 1) && (P2_3 == 1))
	{
	  mXClr = 0;
	}
  }
  else
  {
    if (P2_2 == 0) // Left button pressed
    {
      if (ProcX >= INC_VAL)
        ProcX -= INC_VAL;
    }
    if (P2_3 == 0) // Right button pressed
    {
      if (ProcX <= (0xFFFF - INC_VAL))
        ProcX += INC_VAL;
    }
  }
  if ((P2_2 == 0) && (P2_3 == 0))
  { // Right and Left pressed
    ProcX = 0x8000;
    mXClr = 1;
  }
#endif // JOYSTICK
  if ((ADCON & 0x08) == 0) // Conversion complete?
  {
    ProcZ = ((WORD) ADDH) << 8; // Read value from last ADC conversion
    ADCON |= 0x08; // Start New ADC Conversion
  }
  else
  {
    ProcZ = (ProcZ & 0xFF00) | 0x0055;
  }
}


/**************************************************************************
DOES: Updates the values displayed on the LEDs
**************************************************************************/
void IO_UpdateLEDs (void)
{
WORD data w;

#ifdef JOYSTICK
  // X - Axis, up and down
  EA = 0;
  w = ProcX;
  EA = 1;
  if (w < 0x8000)
  {
    LED_down = ConvertLEDValue(0x7FFF - w); 
    LED_up = 0;
  }
  else
  {
    LED_down = 0; 
	LED_up = ConvertLEDValue(w - 0x8000);
  }
	
  // Y - Axis, left and right
  EA = 0;
  w = ProcY;
  EA = 1;
  if (w < 0x8000)
  {
    LED_left = ConvertLEDValue(0x7FFF - w); 
	LED_right = 0;
  }
  else
  {
    LED_left = 0; 
	LED_right = ConvertLEDValue(w - 0x8000);
  }
#endif // JOYSTICK

  // Z - Axis, potentiometer, analog out
  EA = 0;
  w = ProcZ;
  EA = 1;
  LED_ana = ConvertLEDValue(w >> 1); 
}



/**************************************************************************
DOES: Timer Interrupt Service Routine. 
Performs all I/O tasks.
**************************************************************************/

void AppTimerISR (void) interrupt 3
{
  mToggle = ~mToggle;
  if (mToggle) // Only execute this every 2nd call
  {
    SwitchLEDs();
    ReadInputs();
  }
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新欧美精品一区二区三区| 国产成人av一区| 久久精品国产亚洲5555| 成人免费高清在线| 欧美丰满美乳xxx高潮www| 国产视频一区在线播放| 日本91福利区| 色综合久久中文字幕综合网| 久久久久9999亚洲精品| 日韩av电影天堂| 色婷婷激情久久| 国产精品全国免费观看高清 | 日韩**一区毛片| 成人国产精品视频| 精品久久久久香蕉网| 亚洲一区二区三区自拍| 不卡一区二区三区四区| 久久九九国产精品| 黄色小说综合网站| 日韩欧美国产wwwww| 午夜精品免费在线| 精品国产一区二区在线观看| 夜夜精品视频一区二区| 一本色道a无线码一区v| 国产精品热久久久久夜色精品三区| 久久99国产精品成人| 欧美一区永久视频免费观看| 一区二区免费看| 在线观看视频欧美| 一区二区欧美视频| 欧美在线综合视频| 夜夜爽夜夜爽精品视频| 欧洲国内综合视频| 亚洲不卡av一区二区三区| 91高清在线观看| 亚洲精品视频自拍| 欧美在线看片a免费观看| 亚洲三级在线观看| 欧美在线观看一区| 日韩电影在线观看网站| 日韩一区二区三区av| 久久9热精品视频| 国产日韩欧美电影| 成人激情黄色小说| 亚洲精品视频免费看| 欧美色窝79yyyycom| 亚洲午夜在线视频| 日韩欧美一区在线| 国产在线一区二区| 国产精品高潮久久久久无| 91视频免费观看| 五月天国产精品| 欧美一区二区黄| 国产精品一区二区久久精品爱涩| 国产网站一区二区| 色屁屁一区二区| 日日噜噜夜夜狠狠视频欧美人 | 国产91丝袜在线播放| 亚洲日本在线观看| 欧美疯狂做受xxxx富婆| 国产毛片精品一区| 亚洲免费观看高清完整版在线观看| 色94色欧美sute亚洲线路二 | 欧美日本韩国一区| 国产一区二区三区视频在线播放| 欧美国产一区在线| 欧美日韩视频在线观看一区二区三区 | 国产精品狼人久久影院观看方式| 91豆麻精品91久久久久久| 奇米影视7777精品一区二区| 亚洲精品一区在线观看| 色一区在线观看| 美女网站在线免费欧美精品| 国产精品免费aⅴ片在线观看| 色国产精品一区在线观看| 久久国内精品自在自线400部| 中文字幕一区二区三区在线播放| 欧美日韩免费高清一区色橹橹 | 国产精品每日更新| 欧美一区二区日韩一区二区| 精品国产乱码久久久久久久久| 成人av网站在线观看免费| 日韩国产欧美在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 欧美美女激情18p| aaa国产一区| 国产精品一区二区不卡| 日韩精品一区第一页| 亚洲精品视频在线看| 久久久综合网站| 欧美一卡二卡在线| 91久久人澡人人添人人爽欧美| 日韩高清在线不卡| 悠悠色在线精品| 中文欧美字幕免费| 精品99久久久久久| 在线91免费看| 欧美日韩国产bt| 91国偷自产一区二区三区观看| 国产东北露脸精品视频| 久色婷婷小香蕉久久| 日韩精品色哟哟| 亚洲国产精品精华液网站| 亚洲天堂av老司机| 国产精品国产自产拍高清av| 国产视频一区不卡| 精品国产乱码久久久久久影片| 欧美日韩国产影片| 欧美日韩国产系列| 欧美午夜精品久久久久久超碰| 99r精品视频| 一本到三区不卡视频| youjizz国产精品| 成人高清视频在线观看| 成人激情开心网| 成人av手机在线观看| 成人美女视频在线观看| 国产不卡一区视频| 成人av在线网站| av在线不卡观看免费观看| 成人一级黄色片| 91在线国产观看| 91片在线免费观看| 欧美视频在线观看一区二区| 欧美日韩一区二区三区四区| 欧美三级韩国三级日本三斤| 国产精品欧美精品| 中文字幕制服丝袜一区二区三区| 国产精品护士白丝一区av| 亚洲视频图片小说| 亚洲一区成人在线| 日韩电影在线免费| 国产一区二区三区免费在线观看| 国产精品一级片| 99re成人精品视频| 91福利在线观看| 欧美福利电影网| 欧美videossexotv100| 国产欧美精品区一区二区三区 | 国产成人在线网站| 91丝袜高跟美女视频| 欧美性xxxxxx少妇| 欧美大胆人体bbbb| 国产精品欧美一级免费| 亚洲一二三区视频在线观看| 久久国产免费看| 9l国产精品久久久久麻豆| 在线观看av一区二区| 日韩精品一区二区在线| 国产精品久久久久毛片软件| 亚洲一区av在线| 国产精品99久久久久久宅男| 色婷婷综合五月| 欧美精品一区二区三区视频| 自拍偷拍欧美激情| 免费成人结看片| 99免费精品视频| 日韩片之四级片| 亚洲欧美日韩人成在线播放| 日本不卡视频在线观看| 99视频一区二区三区| 91麻豆精品国产自产在线观看一区| 久久这里只有精品首页| 亚洲图片欧美激情| 久久疯狂做爰流白浆xx| 欧美亚一区二区| 国产亚洲短视频| 日韩电影一区二区三区| 91麻豆福利精品推荐| 亚洲.国产.中文慕字在线| 国产福利精品一区二区| 在线播放91灌醉迷j高跟美女| 国产精品久久久久aaaa| 另类综合日韩欧美亚洲| 欧美日韩在线播放三区四区| 国产日韩欧美不卡| 蜜臀av性久久久久蜜臀av麻豆| 色呦呦日韩精品| 国产精品免费久久| 国产乱理伦片在线观看夜一区| 欧美色大人视频| 亚洲另类春色校园小说| 国产成a人亚洲| 久久夜色精品国产噜噜av| 天天色综合天天| 欧美三片在线视频观看 | 久久伊人中文字幕| 日韩高清不卡一区二区| 欧美日韩在线精品一区二区三区激情| 国产精品丝袜一区| 国产成人日日夜夜| 久久综合色之久久综合| 理论电影国产精品| 日韩午夜激情av| 日本va欧美va精品| 欧美一区二区视频在线观看| 亚洲成人一区二区在线观看| 欧美性生交片4| 偷拍与自拍一区| 欧美日韩中文精品|