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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? peridialog.cpp

?? Implementing μVision2 DLLs for Visual borland c++ builder
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// PeriDialog.cpp : implementation file
// Peripheral Dialog: A/D Converter for ADuC812

#include "stdafx.h"
#include "Agsi.h"
#include "SPeriDLL.h"
#include "PeriDialog.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


// Protoyptes for forward references
static void PeriUpdate (void);
static void PeriKill   (AGSIDLGD *pM);
static void PeriDisp   (AGSIMENU *pM);

/////////////////////////////////////////////////////////////////////////////
// CPeriDialog dialog
static CPeriDialog  * pCPeriDialog;
BYTE initflag = 0;

// must not use 'const' here !
//                     iOpen  Hwnd   Dlg Proc.  Rect: -1 := default    Update       Kill
AGSIDLGD PeriDlg =  {    0,   NULL,      NULL,  { -1, -1, -1, -1, },  PeriUpdate,  PeriKill };

//                    nDelim   *szText            *fp      nID   nDlgId         *pDlg;
AGSIMENU PeriMenu =  {  1,   "&A/D Converter"  , PeriDisp,  0,  IDD_ADCON,     &PeriDlg   };  // Peripheral Dialog


static DWORD  adccon1,  adccon2,  adccon3,  adcdatal,  adcdatah,  dmal,  dmah,  dmap;   // Current values
static DWORD  adccon1p, adccon2p, adccon3p, adcdatalp, adcdatahp, dmalp, dmahp, dmapp;  // Previous values


// Output 2-digit Hexnumber to Text-Control of given Dialog
void StringHex2 (CWnd * pCWnd, DWORD val)  {
  char locbuffer[20];
  sprintf (locbuffer, "0x%02X", val);
  pCWnd->SetWindowText (locbuffer);
}

// Output 4-digit Hexnumber to Text-Control of given Dialog
void StringHex4 (CWnd * pCWnd, DWORD val)  {
  char locbuffer[20];
  sprintf (locbuffer, "0x%04X", val);
  pCWnd->SetWindowText (locbuffer);
}

// Output 6-digit Hexnumber to Text-Control of given Dialog
void StringHex6 (CWnd * pCWnd, DWORD val)  {
  char locbuffer[20];
  sprintf (locbuffer, "0x%06X", val);
  pCWnd->SetWindowText (locbuffer);
}

// Output Float number to Text-Control of given Dialog
void StringFloat (CWnd * pCWnd, float val)  {
  char locbuffer[20];
  sprintf (locbuffer, "%1.4f", val);
  pCWnd->SetWindowText (locbuffer);
}

static const char INPUT_ERR_TITLE [] = "Invalid number";
static const char INPUT_ERRMSG[]     = "You have entered an invalid number!\n"
                                       "The previous value will be restored.\n"
                                       "Examples: 0x12\n";

static const char INPUT_OVR_TITLE [] = "Out of range";
static const char INPUT_OVRMSG[]     = "You have entered a number that is out of range!\n";

long GetDlg8BNumber (CWnd * pCWnd, DWORD oldval) {
  DWORD temp;
  WORD n;
  char lbuf[100];
  
  n = pCWnd->GetWindowText (lbuf, 100);
  lbuf[n] = '\0';  /* terminate string */
  n = sscanf(lbuf, "%x", &temp);
  if (n != 1) {
    MessageBeep(MB_ICONEXCLAMATION);
    pCWnd->MessageBox(&INPUT_ERRMSG[0], &INPUT_ERR_TITLE[0], MB_OK|MB_ICONSTOP); 
    StringHex2 (pCWnd, oldval);
    return(-1);
  }
  if (temp > 0xFF) {
    MessageBeep(MB_ICONEXCLAMATION);
    pCWnd->MessageBox(INPUT_OVRMSG, INPUT_OVR_TITLE, MB_OK | MB_ICONSTOP); 
    StringHex2 (pCWnd, oldval);
    return(-1);
  }
  StringHex2 (pCWnd, temp);
  return(temp);
}

long GetDlg16BNumber (CWnd *pCWnd, DWORD oldval) {
  DWORD temp;
  WORD n;
  char lbuf[100];
  
  n = pCWnd->GetWindowText (lbuf, 100);
  lbuf[n] = '\0';  /* terminate string */
  n = sscanf(lbuf, "%x", &temp);
  if (n != 1) {
    MessageBeep(MB_ICONEXCLAMATION);
    pCWnd->MessageBox(&INPUT_ERRMSG[0],&INPUT_ERR_TITLE[0],MB_OK|MB_ICONSTOP); 
    StringHex4 (pCWnd, oldval);
    return(-1);
  }
  if (temp > 0xFFFF) {
    MessageBeep(MB_ICONEXCLAMATION);
    pCWnd->MessageBox(INPUT_OVRMSG, INPUT_OVR_TITLE, MB_OK | MB_ICONSTOP); 
    StringHex4 (pCWnd, oldval);
    return(-1);
  }
  StringHex4 (pCWnd, temp);
  return(temp);
}

long GetDlg24BNumber (CWnd *pCWnd, DWORD oldval) {
  DWORD temp;
  WORD n;
  char lbuf[100];
  
  n = pCWnd->GetWindowText (lbuf, 100);
  lbuf[n] = '\0';  /* terminate string */
  n = sscanf(lbuf, "%x", &temp);
  if (n != 1) {
    MessageBeep(MB_ICONEXCLAMATION);
    pCWnd->MessageBox(INPUT_ERRMSG, INPUT_ERR_TITLE, MB_OK | MB_ICONSTOP); 
    StringHex6 (pCWnd, oldval);
    return(-1);
  }
  if (temp > 0xFFFFFF) {
    MessageBeep(MB_ICONEXCLAMATION);
    pCWnd->MessageBox(INPUT_OVRMSG, INPUT_OVR_TITLE, MB_OK | MB_ICONSTOP); 
    StringHex6 (pCWnd, oldval);
    return(-1);
  }
  StringHex6 (pCWnd, temp);
  return(temp);
}


static const char INPUT_F_ERR_TITLE [] = "Invalid float number";
static const char INPUT_F_ERRMSG[]     = "You have entered an invalid float number!\n"
                                         "The previous value will be restored.\n"
                                         "Example: 1.234\n";

float GetDlgFloat (CWnd * pCWnd, float oldval) {
  WORD n;
  float f;
  char lbuf[100];
  
  n = pCWnd->GetWindowText (lbuf, 100);
  lbuf[n] = '\0';  /* terminate string */
  n = sscanf(lbuf, "%f", &f);
  if (n != 1) {
    MessageBeep(MB_ICONEXCLAMATION);
    pCWnd->MessageBox(INPUT_F_ERRMSG, INPUT_F_ERR_TITLE, MB_OK | MB_ICONSTOP); 
    sprintf (lbuf, "%1.4f", oldval);
    pCWnd->SetWindowText (lbuf);
    return((float)-1.9876e-36);
  }
  sprintf (lbuf, "%1.4f", f);
  pCWnd->SetWindowText (lbuf);
  return(f);
}


// This function handles a byte input in a dialog
void HandleByteInput(CWnd * pCWnd, AGSIADDR sfr) {
  DWORD oldval, oldvalp, tmp;

  Agsi.ReadSFR(sfr, &oldval, &oldvalp, 0xFF);
  tmp = GetDlg8BNumber (pCWnd, oldval);
  if (tmp != -1) {
    Agsi.WriteSFR(sfr, tmp, 0xFF);
	Agsi.UpdateWindows();
  }
}

// This function handles a word input in a dialog
void HandleWordInput(CWnd * pCWnd, AGSIADDR sfrl, AGSIADDR sfrh) {
  DWORD oldval, tmp, tmpp;

  Agsi.ReadSFR(sfrl, &tmp, &tmpp, 0xFF);
  oldval = tmp;
  Agsi.ReadSFR(sfrh, &tmp, &tmpp, 0xFF);
  oldval += tmp << 8;
  tmp = GetDlg16BNumber (pCWnd, oldval);
  if (tmp != -1) {
    Agsi.WriteSFR(sfrl, tmp, 0xFF);
    Agsi.WriteSFR(sfrh, tmp >> 8, 0xFF);
	Agsi.UpdateWindows();
  }
}

// This function handles a 3 byte input in a dialog
void Handle3ByteInput(CWnd * pCWnd, AGSIADDR sfrl, AGSIADDR sfrh, AGSIADDR sfrp) {
  DWORD oldval, tmp, tmpp;

  Agsi.ReadSFR(sfrl, &tmp, &tmpp, 0xFF);
  oldval = tmp;
  Agsi.ReadSFR(sfrh, &tmp, &tmpp, 0xFF);
  oldval += tmp << 8;
  Agsi.ReadSFR(sfrp, &tmp, &tmpp, 0xFF);
  oldval += tmp << 16;
  tmp = GetDlg24BNumber (pCWnd, oldval);
  if (tmp != -1) {
    Agsi.WriteSFR(sfrl, tmp, 0xFF);
    Agsi.WriteSFR(sfrh, tmp >> 8, 0xFF);
    Agsi.WriteSFR(sfrp, tmp >> 16, 0xFF);
	Agsi.UpdateWindows();
  }
}

// This function handles a float number input in a dialog
void HandleFloatInput(CWnd * pCWnd, AGSIVTR vtr) {
  union fv tmp;
  float result;

  Agsi.ReadVTR(vtr, &tmp.DW);
  result = GetDlgFloat (pCWnd, tmp.f);
  if (result != -1.9876e-36) {
	tmp.f = result;
    Agsi.WriteVTR(vtr, tmp.DW);
  }
}

// This function is intended to be called when a checkbox is clicked (SFR bit)
void WriteBit(AGSIADDR sfr, DWORD mask, DWORD set) {
  DWORD value;

  value = (set == 0) ? 0 : 0xFF;
  Agsi.WriteSFR(sfr, value, mask);
  Agsi.UpdateWindows();
}

// This function is intended to be called when a checkbox is clicked (VTR bit)
void WriteBitVTR(AGSIVTR vtr, DWORD mask, DWORD set) {
  DWORD value;	

  Agsi.ReadVTR(vtr, &value);
  if (set) value |= mask;
  else value &= ~mask;
  Agsi.WriteVTR(vtr, value);
}


static void PeriUpdate (void)  {            // Update Function
  if (pCPeriDialog) pCPeriDialog->Update();
}

static void PeriKill (AGSIDLGD *pM)  {      // Kill Function
  if (pCPeriDialog == NULL) return;
  pCPeriDialog->SendMessage (WM_CLOSE);
  pCPeriDialog  = NULL;
  pM->iOpen = 0;
  pM->hw    = NULL;
}

static void PeriDisp (AGSIMENU *pM)  {
  if (pM->pDlg->hw != NULL)  {              // created
    PeriKill (pM->pDlg);                    // close
  } else  {
//    AFX_MANAGE_STATE(AfxGetStaticModuleState());// -- not necessary.
    pCPeriDialog = new CPeriDialog (pM, NULL);     // modeless construction
    if (pCPeriDialog != NULL)  {                   // construction was Ok.
      pM->pDlg->hw = pCPeriDialog->m_hWnd;         // Dialog handle
    }
  }
}

CPeriDialog::CPeriDialog (AGSIMENU *pMen, CWnd *pWnd)  {
  pM = pMen;                     // save DYM-Descriptor locally.
  Create (IDD_ADCON, pWnd);
  pCPeriDialog = this;
}


// standard constructor does not work here because we are using modeless dialogs
//CPeriDialog::CPeriDialog(CWnd* pParent /*=NULL*/)
//	: CDialog(CPeriDialog::IDD, pParent)
//{
	//{{AFX_DATA_INIT(CPeriDialog)
		// NOTE: the ClassWizard will add member initialization here

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线免费视频| 亚洲第一二三四区| 欧美日韩国产中文| 国产91对白在线观看九色| 夜夜亚洲天天久久| 国产日韩欧美电影| 日韩欧美一区二区三区在线| 91蜜桃传媒精品久久久一区二区| 蜜桃视频第一区免费观看| 亚洲天堂免费在线观看视频| 欧美精品一区二区精品网| 欧美日韩视频在线第一区| 91色porny| 成人动漫视频在线| 国产乱对白刺激视频不卡| 男女性色大片免费观看一区二区| 一区二区在线观看视频在线观看| 中文字幕欧美日韩一区| 日韩精品自拍偷拍| 制服.丝袜.亚洲.中文.综合| 色婷婷久久久亚洲一区二区三区| 懂色av中文一区二区三区| 韩国欧美国产一区| 美脚の诱脚舐め脚责91 | 精品视频1区2区3区| 99久久777色| 成人精品视频一区| 国产盗摄视频一区二区三区| 精久久久久久久久久久| 精品一区二区三区视频| 久久国产欧美日韩精品| 久久不见久久见免费视频7| 天使萌一区二区三区免费观看| 综合av第一页| 136国产福利精品导航| 国产精品第13页| 中文字幕一区二区视频| 国产精品毛片久久久久久久| 中文字幕亚洲一区二区va在线| 欧美国产综合一区二区| 日本一区二区三区久久久久久久久不| 精品电影一区二区三区| 久久久久久电影| 国产欧美综合在线观看第十页| 国产色一区二区| 国产日韩欧美精品综合| 国产精品国产三级国产aⅴ无密码| 国产欧美日韩另类视频免费观看| 国产精品麻豆欧美日韩ww| 国产精品理伦片| 亚洲免费观看高清完整版在线观看熊| 亚洲靠逼com| 日韩综合小视频| 久久精品国产亚洲一区二区三区| 极品少妇xxxx精品少妇| 国产·精品毛片| 91免费精品国自产拍在线不卡| 欧美婷婷六月丁香综合色| 91麻豆精品国产91久久久久久久久| 717成人午夜免费福利电影| 日韩午夜在线播放| 欧美极品aⅴ影院| 亚洲欧美色一区| 青娱乐精品视频| 国产成人精品免费网站| 在线亚洲欧美专区二区| 日韩欧美亚洲一区二区| 中文字幕亚洲不卡| 日韩精品1区2区3区| 国产精品白丝jk白祙喷水网站 | 日本精品一级二级| 日韩一区二区免费在线电影| 国产日韩精品一区二区浪潮av| 亚洲精品成人天堂一二三| 日韩精品一二区| 国产aⅴ精品一区二区三区色成熟| 91福利国产精品| 精品国产99国产精品| 亚洲男同1069视频| 国内偷窥港台综合视频在线播放| 99热精品国产| 欧美不卡一区二区| 亚洲狠狠丁香婷婷综合久久久| 免费成人在线观看视频| 99久久国产综合精品女不卡| 日韩一卡二卡三卡| 综合av第一页| 国产精品一区二区在线播放| 日本精品裸体写真集在线观看 | 欧美天天综合网| 久久蜜桃av一区二区天堂| 一区二区不卡在线播放| 国产成人精品亚洲777人妖| 7799精品视频| 亚洲男人的天堂一区二区| 久久99久久精品| 欧美三级日韩三级国产三级| 亚洲国产精品成人综合色在线婷婷 | 亚洲视频一二三| 黄色成人免费在线| 日本大香伊一区二区三区| 久久女同性恋中文字幕| 天天综合色天天综合| 91在线视频免费91| 国产亚洲欧洲一区高清在线观看| 日本女优在线视频一区二区| 色欧美日韩亚洲| 亚洲欧美一区二区视频| 国产高清亚洲一区| 日韩欧美一区二区久久婷婷| 亚洲成人免费观看| 91久久线看在观草草青青| 中文字幕一区二区三区在线不卡| 九九**精品视频免费播放| 欧美日本国产一区| 亚洲综合男人的天堂| av网站一区二区三区| 久久久精品国产免大香伊| 久久99精品久久久久久国产越南| 555夜色666亚洲国产免| 亚洲午夜久久久久中文字幕久| 97久久超碰国产精品| 欧美高清在线一区| 成人久久视频在线观看| 国产亚洲女人久久久久毛片| 国产在线一区二区| 精品福利在线导航| 国产一区二区0| 精品蜜桃在线看| 精品一区二区免费在线观看| 日韩免费在线观看| 六月丁香婷婷色狠狠久久| 日韩三级精品电影久久久| 麻豆精品视频在线观看视频| 91精品欧美久久久久久动漫| 日韩精品电影在线观看| 欧美一区二区在线不卡| 麻豆精品在线视频| xnxx国产精品| 国产91富婆露脸刺激对白| 国产精品麻豆视频| 一本色道久久综合亚洲精品按摩| 亚洲男人的天堂在线观看| 欧美羞羞免费网站| 日产欧产美韩系列久久99| 日韩天堂在线观看| 国产在线国偷精品免费看| 国产午夜精品一区二区三区四区| 成人一区在线看| 亚洲柠檬福利资源导航| 欧美肥大bbwbbw高潮| 久久国产福利国产秒拍| 久久精品一区二区三区不卡| 大白屁股一区二区视频| 亚洲免费在线视频一区 二区| 欧美中文字幕一二三区视频| 丝袜美腿亚洲一区二区图片| 欧美成人官网二区| eeuss鲁一区二区三区| 亚洲综合另类小说| 欧美成人官网二区| 91在线porny国产在线看| 亚洲成av人片在线观看| 久久亚洲精精品中文字幕早川悠里| 国产不卡视频在线观看| 亚洲一区二区三区不卡国产欧美| 51精品视频一区二区三区| 国产精品一区专区| 亚洲网友自拍偷拍| 精品日韩一区二区三区| 成人av在线电影| 婷婷中文字幕一区三区| 久久久久久久久久久黄色| 91亚洲精品一区二区乱码| 蜜桃一区二区三区四区| 日韩一区在线看| 欧美成人性战久久| 色呦呦网站一区| 国内不卡的二区三区中文字幕| 亚洲天堂久久久久久久| 欧美mv日韩mv亚洲| 在线视频你懂得一区二区三区| 美国av一区二区| 亚洲在线中文字幕| 国产日产欧美一区| 欧美一区二区在线不卡| 91美女片黄在线观看| 六月丁香婷婷久久| 亚洲国产视频在线| 欧美国产禁国产网站cc| 欧美精品粉嫩高潮一区二区| 成人精品视频一区二区三区尤物| 免费不卡在线视频| 亚洲激情第一区| 国产农村妇女精品| 日韩欧美中文一区二区| 91黄视频在线观看| 成人妖精视频yjsp地址| 免费人成黄页网站在线一区二区| 亚洲精品欧美在线|