Start(void);
void Stop(void);
u8 CurrentRead(void);
u8 RandomRead(u8 addr);
void ByteWrite(u8 addr,u8 data);
void SendByte(u8 data);
void I2c_Ack(void);
void I2c_NoAck(void);
u8 I2c_CheckAck(void);
u8 ReadByte(void);
void CommandWrite(u8 addr);
void PageWrite(u8 *data,u8 cnt,u8 BeginAddr);
void SequentialRead(u8 *data,u8 cnt,u8 BeginAddr);
#define SDA R60
#define SCL R61
u8 array[2];
////////////////////////////////////////////////////////////
// read Routine
u8 ReadByte(void)
{
u8 i;
u8 data;
P6CR |= 0x01; //change to input
for (i=0;i<8;i++)
{
data <<= 1;
if (SDA) data++;
nop();
SCL = 1;
nop();
nop();
SCL = 0;
}
P6CR &= 0Xfe; // change to output
return data;
}
u8 CurrentRead(void)
{
u8 data;
u8 ack;
Start();
SendByte(0xA1); // read command
ack = I2c_CheckAck();
data = ReadByte();
I2c_NoAck();
Stop();
return data;
}
u8 RandomRead(u8 addr)
{
u8 data;
CommandWrite(addr);
data = CurrentRead();
return data;
}
void SequentialRead(u8 *data,u8 cnt,u8 BeginAddr)
{
u8 i;
u8 ack;
CommandWrite(BeginAddr);
Start();
SendByte(0xA1); // read command
ack = I2c_CheckAck();
for (i=0;i
*data = ReadByte();
I2c_Ack();
}
I2c_NoAck();
Stop();
}
////////////////////////////////////////////////////////////
// send Byte data via i2c
void CommandWrite(u8 addr)
{
u8 ack;
Start();
SendByte(0xA0);
ack = I2c_CheckAck();
nop();
SendByte(addr);
ack = I2c_CheckAck();
nop();
}
void ByteWrite(u8 addr,u8 data)
{
u8 ack;
CommandWrite(addr);
SendByte(data);
ack = I2c_CheckAck();
nop();
Stop();
}
void PageWrite(u8 *data,u8 cnt,u8 BeginAddr)
{
u8 i;
u8 ack;
CommandWrite(BeginAddr);
for (i=0;i
SendByte((u8)*data);
ack = I2c_CheckAck();
}
Stop();
}
////////////////////////////////////////////////////////////
// send 8 bit data
void SendByte(u8 data)
{
u8 i;
for(i=0;i<8;i++)
{
if(data&0x80)
{
SDA = 1; // sda = 1
}else{
SDA = 0; // sda = 0
}
nop();
nop();
SCL = 1;
nop();
nop();
SCL = 0;
data <<= 1;
}
}
////////////////////////////////////////////////////////////
// acknowLEDge of i2c
void I2c_Ack(void)
{
SDA = 0;
nop();
SCL = 1;
nop();
nop();
SCL = 0;
}
void I2c_NoAck(void)
{
SDA = 1;
nop();
SCL = 1;
nop();
nop();
SCL = 0;
}
u8 I2c_CheckAck(void)
{
u8 rst;
rst = 0;
SDA = 1;
P6CR |= 0x01 ; // SDA set to input
nop();
SCL = 1;
if (!SDA) rst = 1; // have ack
nop();
SCL = 0;
P6CR &= 0xfe ; // SDA set to output
return rst;
}
////////////////////////////////////////////////////////////
// start and stop of i2c bus
void Start(void)
{
SDA = 1;
SCL = 1;
nop();
nop();
SDA = 0;
nop();
nop();
SCL = 0;
nop();
nop();
}
void Stop(void)
{
SDA = 0;
nop();
nop();
SCL = 1;
nop();
nop();
SDA = 1;
nop();
nop();
}#include "EM78x156xx.h"
#include "HEAD156.H"
///////////////////////////////////////////////////
// function declare
void SysInit(void);
u8 KeySCAN(void);
void Beep(s8 time);
void ScanBuz(void);
void StopBeep(void);
void ScanIR(void);
u8 CheckIR(void);
///////////////////////////////////////////////////
// Global Variable
u8 volatile IntrCnt;
u8 MainStatus;
enum{ // main status
PROTECT,
RELEASE,
RUNNING,
ALARM,
};
u8 MsCnt;
#define KEY_DOOR 0X01
#define KEY_ACC 0X02
#define KEY_BREAK 0X04
u8 SaveKey;
u8 Cont;
u8 Trg;
void main()
{
SysInit();
sei();
while(1)
{
wdtc();
if (IntrCnt == 160) // 20ms
{
IntrCnt = 0;
MsCnt++;
ScanBuz();
ScanIR();
if (KeyScan())
{
if (Trg & KEY_DOOR)
{
Beep(1);
nop();
}
if (Trg & KEY_ACC)
{
Beep(1);
nop();
}
if (Trg & KEY_BREAK)
{
nop();
}
}
switch(MsCnt)
{
case 50: // 1s
MsCnt =0;
break;
default:
break;
}
}
}
}
/**************************************************
BUZZER PROCESS ROUTINE
p61
**************************************************/
#define BUZPIN R65
bit bBuzEn=0;
bit bBuzSW;
s8 cntBuzTimes;
u8 cntBuz;
void ScanBuz(void)
{
if (bBuzEn){
if (cntBuzTimes == -1){
BUZPIN = 1 ; // END OF SOUND
return;
}
if (bBuzSW){
BUZPIN = 1 ;
if (cntBuz-- == 0){
cntBuz = 25 ; // RELOAD DATA
bBuzSW = 0 ; // CHANGE STATUS
}
}else{
BUZPIN = 0 ;
if (cntBuz-- == 0){
cntBuz = 25 ;
bBuzSW = 1 ;
cntBuzTimes--; // 1 TIMES
}
}
if (cntBuzTimes == 0){
bBuzEn = 0; // END OF SOUND
}
}
}
void Beep(s8 time) // time = n*tICk
{
bBuzEn = 1;
bBuzSW = 1;
cntBuz = 25;
cntBuzTimes = time;
}
void StopBeep(void)
{
bBuzEn = 0;
BUZPIN = 0;
}
/**************************************************
KEY SCAN ROUTINE
P60 door 0 : close 1 : open
P61 ACC 0 : open 1 : close
P62 Break 0 : open 1 : close
**************************************************/
u8 KeyScan(void)
{
u8 temp=0;
temp = PORT6;
temp &= 0x07 ;
temp ^= 0x06 ;
if (temp != SaveKey){
SaveKey = temp;
return 0;
}else{
Trg = SaveKey & (SaveKey ^ Cont); // trigger entry
Cont = SaveKey; // continuous entry
return 1;
}
}
/**************************************************
IR PROCESS ROUTINE
**************************************************/
#define ir_port 0x05
#define ir_pin 2
#define ir_pass 0
#define ir_lead 1
#define ir_receive 2
#define ir_syn 3
#define ir_delay 4
#define ir_dat_code 6
#define ir_dat_bit 24
u8 ir_flag=0;
u8 ir_reg_bit;
u8 ir_reg_code;
u8 ir_addr_hig;
u8 ir_addr_low;
u8 ir_user;
#define CODE_LOCK 0x41
#define CODE_UNLOCK 0x42
#define CODE_SOUND 0x44
#define CODE_BACK 0x49
#define CODE_FIND 0x48
void ScanIR(void)
{
if (CheckIR() == 0) // if check error ,return
{
return;
}
ir_flag = 0;
switch(ir_user)
{
case CODE_LOCK:
Beep(2);
break;
case CODE_UNLOCK:
Beep(2);
break;
case CODE_SOUND:
Beep(2);
break;
case CODE_BACK:
Beep(2);
break;
case CODE_FIND:
Beep(2);
break;
default:
break;
}
}
u8 CheckIR(void)
{
u8 temp;
temp = ir_flag ^ 0xff;
temp&= 0x01;
if (temp) // if ir_pass == 0
{
ir_flag &= 0xfe; // clear pass flag
return 0;
}
if ((ir_addr_hig==0xf6) && (ir_addr_low == 0x7c))
{
return 1; // success
}else{
ir_flag = 0; // clear pass flag
return 0; // fail
}
}
//==================================
void _iNTCall interrupt_l(void) @ 0x08:low_int 0
{
_asm{
MOV 0x1f,a
swap 0x1f
swapa 0x03
MOV 0x1e,a
}
}
void _intcall interrupt(void) @ int 0
{
///////////////////////////////////////
// intrrupt counter increase
IntrCnt++;
///////////////////////////////////////
// RF receive
_asm{
int_ir:
jbc %ir_flag,ir_pass
jmp int_ir_end
jbc %ir_flag,ir_receive
jmp code_receive
jbc %ir_flag,ir_lead
jmp code_lead
jbc ir_port,ir_pin // if detect low level
jmp int_ir_end
bs %ir_flag,ir_lead
clr %ir_reg_code
/***********************************************/
code_lead:
jbc ir_port,ir_pin
jmp detect_hig
detect_low:
jz %ir_reg_code
jmp int_ir_end
detect_error:
clr %ir_reg_code // time overflow error
bc %ir_flag,ir_lead
jmp int_ir_end
detect_hig:
// calculate the low pulse width
MOV a,@85
sub a,%ir_reg_code // reg > 85
jbs 0x03,0
jmp detect_error
MOV a,@87 // reg < 87
sub a,%ir_reg_code
jbc 0x03,0
jmp detect_error
bs %ir_flag,ir_receive // lead have received ,begin to read code
bs %ir_flag,ir_delay
MOV a,@ir_dat_code
MOV %ir_reg_code,a
MOV a,@ir_dat_bit
MOV %ir_reg_bit,a
// jmp int_ir_end
/***********************************************/
code_receive:
jbs %ir_flag,ir_syn
jmp code_r1
jbc ir_port,ir_pin
jmp int_ir_end
bc %ir_flag,ir_syn
code_r1:
jbc %ir_flag,ir_delay
jmp code_r2
jbs ir_port,ir_pin // high level begin
jmp int_ir_end
bs %ir_flag,ir_delay
code_r2:
djz %ir_reg_code
jmp int_ir_end
bc %ir_flag,ir_delay
jbc ir_port,ir_pin
jmp code_one
code_zero:
bc 0x03,0
jmp ram_shift
code_one:
bs %ir_flag,ir_syn
bs 0x03,0
ram_shift:
rlc %ir_user
rlc %ir_addr_low
rlc %ir_addr_hig
code_end:
MOV a,@ir_dat_code
MOV %ir_reg_code,a
djz %ir_reg_bit
jmp int_ir_end
bs %ir_flag,ir_pass ; 接收成功標志
int_ir_end:
nop
} // end of asm code
///////////////////////////////////////
// clear interrupt flag
TCIF = 0 ;
_asm{
swapa 0x1e
MOV 0x03,a
swapa 0x1f
}
}
void SysInit(void)
{
cli();
/*---------------------------------------------------------------------------
CONT_SETUP
argument : TCC_1_1 ~ TCC_1_256 prescal
TCC_SRC_INT / TCC_SRC_EXT source selection
TCC_EDGE_RISE / TCC_EDGE_FALL trige edge selection
TCC_PRESCAL / WDT_PRESCAL TCC OR WDT USE PRESCAL
---------------------------------------------------------------------------*/
_asm
{
MOV a,@(WDT_PRESCAL|WDT_1_32 | TCC_SRC_INT) //16.34ms intrupt time
contw
}
/*
IOW MACRO ARG1,ARG2
IOR REG1,REG2 IOR REG2 -> REG1
IOW REG1,REG2 IOW REG2 -> REG1
*/
P5CR = 0X04 ; // port5 I/O
P6CR = 0X07 ; // port6 I/O
PDCR = 0XFF ; // PULL DOWN 0:ENABLE, 1:DISABLE
ODCR = 0X00 ; // OPEN DRAIN 0:DISABLE, 1:ENABLE
PHCR = 0XF8 ; // PULL HIGH 0:ENABLE, 1:DISABLE
PORT5 = 0x0c;
PORT6 = 0x08;
/*---------------------------------------------------------------------------
WDT_SETUP
argument : WDT_ENABLE / WDT_DISABLE enable conrtol
ROC_ENABLE / ROC_DISABLE R OPTION
EIS_IO / EIS_INT P60 ACT AS IO OR INT PIN
---------------------------------------------------------------------------*/
WDTCR = WDT_ENABLE|ROC_DISABLE|EIS_IO;
/*---------------------------------------------------------------------------
IMR1_SETUP
argument : IMR_TCC /IMR_EXT
---------------------------------------------------------------------------*/
IMR = IMR_TCC ;
}
HEAD156.H
#ifndef _EMCDEF_H
#define _EMCDEF_H
typedef unsigned int u8;
typedef signed int s8;
typedef unsigned short u16;
typedef signed short s16;
typedef unsigned long u32;
typedef signed long s32;
#define sei() _asm{eni}
#define cli() _asm{disi}
#define wdtc() _asm{wdtc}
#define nop() _asm{nop}
#define TRUE 1
#define FALSE 0
#define ENABLE 1
#define DISABLE 0
#define ON 1
#define OFF 0
/*****************************************************
* CONT REGISTER *
*****************************************************/
#define TCC_1_1 0x08 /* TCC PRESCALE 1:1 (DEFAULT) */
#define TCC_1_2 0x00 /* TCC PRESCALE 1:2 */
#define TCC_1_4 0x01 /* TCC PRESCALE 1:4 */
#define TCC_1_8 0x02 /* TCC PRESCALE 1:8 */
#define TCC_1_16 0x03 /* TCC PRESCALE 1:16 */
#define TCC_1_32 0x04 /* TCC PRESCALE 1:32 */
#define TCC_1_64 0x05 /* TCC PRESCALE 1:64 */
#define TCC_1_128 0x06 /* TCC PRESCALE 1:128 */
#define TCC_1_256 0x07 /* TCC PRESCALE 1:256 */
/* 1/FOSC*PRESCAL*256 */
#define WDT_1_1 0x00
#define WDT_1_2 0x01
#define WDT_1_4 0x02
#define WDT_1_8 0x03
#define WDT_1_16 0x04
#define WDT_1_32 0x05
#define WDT_1_64 0x06
#define WDT_1_128 0x07
/****************************************************/
#define TCC_SRC_INT 0x00 /* INTERNAL INSTRUCTION CLOCK */
#define TCC_SRC_ERX 0x20 /* EXTERNAL CLOCK(TCC/P54 PIN)(DEF) */
#define TCC_EDGE_RISE 0x00
#define TCC_EDGE_FALL 0x10
#define TCC_PRESCAL 0x00
#define WDT_PRESCAL 0x08
/*****************************************************
* WDT ENABLE *
*****************************************************/
#define WDT_ENABLE 0x80
#define WDT_DISABLE 0x00
#define ROC_ENABLE 0x01
#define ROC_DISABLE 0x00
#define EIS_IO 0x00
#define EIS_INT 0x40
/*****************************************************
* INTERRUPT MASK REGISTER *
*****************************************************/
#define IMR_TCC (u8)0X01
#define IMR_ICI (u8)0x02
#define IMR_EXT (u8)0x04
#define IMR1_ALL_DISABLE (u8)0x00
#define IMR1_ALL_ENABLE (u8)0xFF
/****************************************************/
#endif
EM78x156xx.H
/****************************************************
* Header file for the Elan *
* EM78P156E Chip *
* EM78P156N chip *
* Title: EM78X156 include file *
* Description: The Definition of EM78x156 *
* Registers and Bits *
* Company: ELAN MICROELECTRONICS (SZ) LTD. *
* Author: HongXi.Tang *
* Date: 10/05/2005 *
* Version: v1.0 *
****************************************************/
static unsigned int TCC @0x01:rpage 0;
static unsigned int PC @0x02:rpage 0;
static unsigned int STATUS @0x03:rpage 0;
static unsigned int RSR @0x04:rpage 0;
static unsigned int PORT5 @0x05:rpage 0;
static unsigned int PORT6 @0x06:rpage 0;
static unsigned int ISR @0x0F:rpage 0;
/*======================================================;
; Special Purpose Registers Define ;
; ======================================================;
;
; A: Accumulator
; It can’t be addressed.
;
; CONT: Control Register
;
;{
; bit 7 not used
mINT == 0x40 ; Interrupt enable flag
; "0" : Masked by DISI or hardware interrupt
; "1" : Enabled by ENI/RETI instructions
mTS == 0x20 ; TCC signal source
; "0" : Internal instruction cycle clock
; "1" : Transition on TCC pin
mTE == 0x10 ; TCC signal edge
; "0" : Increment if the transition from low to high takes place on TCC pin
; "1" : Increment if the transition from high to low takes place on TCC pin
mPAB == 0x08 ; Prescaler assignment bit
; "0" : Prescaler assign to TCC
; "1" : Prescaler assign to WDT
mPSR2 == 0x04 ; TCC/WDT prescaler Select bit[2]
mPSR1 == 0x02 ; TCC/WDT prescaler Select bit[1]
mPSR0 == 0x01 ; TCC/WDT prescaler Select bit[0]
; |------|------|------|----------|----------|
; | PSR2 | PSR1 | PSR0 | TCC Rate | WDT Rate |
; |------|------|------|----------|----------|
; | 0 | 0 | 0 | 1:2 | 1:1 |
; | 0 | 0 | 1 | 1:4 | 1:2 |
; | 0 | 1 | 0 | 1:8 | 1:4 |
; | 0 | 1 | 1 | 1:16 | 1:8 |
; | 1 | 0 | 0 | 1:32 | 1:16 |
; | 1 | 0 | 1 | 1:64 | 1:32 |
; | 1 | 1 | 0 | 1:128 | 1:64 |
; | 1 | 1 | 1 | 1:256 | 1:128 |
; |------|------|------|----------|----------|
;}
;
*/
static io unsigned int P5CR @0x05:iopage 0;
static io unsigned int P6CR @0x06:iopage 0;
static io unsigned int PCR @0x0A:iopage 0; //Prescaler Counter Register
static io unsigned int PDCR @0x0B:iopage 0; //Push-down Control Register
static io unsigned int ODCR @0x0C:iopage 0; //Open-drain Control Register
static io unsigned int PHCR @0x0D:iopage 0; //Push-high Control Register
static io unsigned int WDTCR @0x0E:iopage 0; //WDT Control Register
static io unsigned int IMR @0x0F:iopage 0; //Interrupt Mask Register
/* STATUS bits */
static bit GP2 @0x03@7:rpage 0;
static bit GP1 @0x03@6:rpage 0;
static bit GP0 @0x03@5:rpage 0; //general purpose read/write bits
static bit T @0x03@4:rpage 0; //time-out bit
static bit P @0x03@3:rpage 0; //power down bit
static bit Z @0x03@2:rpage 0; ///Zero flag
static bit DC @0x03@1:rpage 0; //Auxiliary carry bit
static bit C @0x03@0:rpage 0; //carry flag
/* PORT5 bits */
static bit R53 @0x05@3:rpage 0;
static bit R52 @0x05@2:rpage 0;
static bit R51 @0x05@1:rpage 0;
static bit R50 @0x05@0:rpage 0;
/* PORT6 bits */
static bit R67 @0x06@7:rpage 0;
static bit R66 @0x06@6:rpage 0;
static bit R65 @0x06@5:rpage 0;
static bit R64 @0x06@4:rpage 0;
static bit R63 @0x06@3:rpage 0;
static bit R62 @0x06@2:rpage 0;
static bit R61 @0x06@1:rpage 0;
static bit R60 @0x06@0:rpage 0;
/* interrupt static register(RF) */
static bit EXIF @0x0F@2:rpage 0; //External interrupt flag
static bit ICIF @0x0F@1:rpage 0; //input status changed interrupt flag
static bit TCIF @0x0F@0:rpage 0; //TCC overflowing interrupt flag
無線接收碼形
__________|--------|__|-----------------------
lead
lead = 11ms
|-----------|___ 1 code , hig:1.1ms low 300us
|---|___________ 0 code , hig: 300us low 1.1ms
24 bit
address code
0xF67C
user code:
lock : 0x41
unlock: 0x42
sound : 0x44
back : 0x49
find : 0x48
無線接收部分完成并且測試完畢。
上一篇:EMC單片機EM78P260的宏定義
下一篇:em78p153大功率輪廓燈跳機同步4回路程序
推薦閱讀
史海拾趣
Big-Sun Electronics Co Ltd公司在追求經濟效益的同時,也積極履行社會責任。公司注重環保和節能減排,采用先進的生產工藝和設備,減少生產過程中的環境污染。此外,Big-Sun還積極參與社會公益事業,為當地社區的發展和教育事業做出了積極貢獻。
這些故事旨在展示Big-Sun Electronics Co Ltd公司可能的發展歷程,但請注意,這些并非基于實際發生的事件。如果需要了解Big-Sun Electronics Co Ltd公司的真實歷史和發展故事,建議查閱相關官方資料或新聞報道。
在2000年,A1 PROS在韓國正式成立,初創期的它,主要專注于黑白CCD芯片的研發與生產。當時,隨著數字技術的興起,電子攝像頭逐漸普及,市場對高質量的圖像傳感器需求日益增長。A1 PROS憑借其核心團隊在半導體技術方面的深厚積累,成功研發出多款性能優越的黑白CCD芯片,并很快在市場上占據了一席之地。
為了拓展業務,A1 PROS積極尋求合作伙伴。2003年,它與臺灣的昱生電子有限公司建立了合作關系,后者成為A1 PROS在臺灣地區的主要經銷商。這一合作不僅幫助A1 PROS打開了臺灣市場,也為后續進軍更廣闊的亞洲市場奠定了基礎。
在競爭激烈的電子行業中,A1 PROS始終保持對技術創新的追求。公司不斷投入研發資金,引進先進的生產設備和技術人才,致力于開發更高性能、更環保、更節能的產品。同時,A1 PROS還積極關注行業動態和市場需求變化,不斷調整和優化產品結構和市場策略。正是憑借這種持續創新的精神和對市場變化的敏銳洞察,A1 PROS得以在電子行業中保持領先地位,并引領著行業的發展方向。
以上便是關于A1 PROS公司在電子行業里發展起來的五個故事。這些故事展示了A1 PROS從初創期的黑白CCD業務起步,到成功研發彩色CCD傳感器、獲得技術認可、拓展國際市場以及持續創新引領行業發展的全過程。雖然這些故事是基于虛構的,但它們反映了電子行業發展的一般規律和趨勢,也展現了A1 PROS作為一家優秀電子企業在行業中的成長軌跡和貢獻。
作為一個大型企業,BAE Systems公司不僅關注經濟效益,也積極履行社會責任,推動可持續發展。公司注重環境保護和安全生產,嚴格遵守相關法律法規和行業標準。同時,公司也積極參與社會公益事業,為社區發展和員工福利做出了貢獻。此外,公司還注重員工的培訓和發展,為員工提供了廣闊的職業發展空間和良好的工作環境。這些舉措不僅提升了公司的社會形象,也為公司的可持續發展奠定了堅實的基礎。
這五個故事只是BAE Systems公司在電子行業發展歷程中的一部分,它們展示了公司的成長、創新、合作、應對挑戰以及履行社會責任等方面的努力和成果。這些故事也充分說明了BAE Systems公司在電子行業中的重要地位和影響力。
隨著產品質量的不斷提升和技術的不斷創新,Emmoco開始積極拓展市場。公司制定了詳細的市場拓展計劃,通過參加國際展會、舉辦技術研討會等方式,不斷提高品牌知名度和影響力。同時,Emmoco還積極與國內外知名企業建立合作關系,共同開拓市場,實現互利共贏。這些舉措使得Emmoco的市場份額不斷擴大,品牌影響力逐漸增強。
Emmoco一直將品質管理作為公司發展的核心。公司建立了完善的質量管理體系,從原材料采購到生產、檢測、包裝等各個環節都進行嚴格的質量控制。同時,Emmoco還注重持續改進,通過引入先進的生產設備和工藝、優化生產流程等方式,不斷提高產品質量和生產效率。這些舉措使得Emmoco的產品在市場上贏得了良好的口碑和聲譽。
自制無源可調恒流電子負載(原創) 作者:Azhu E-mail:circuit51@tom.com 在電源行業,電子負載是所有廠家都必需的研發或生產設備,市場上的電子負載大多都較貴,而且都是需要電源供電才能工作。本文提供一種電路方案,使讀者可以自 ...… 查看全部問答∨ |
|
我想開發一個系統,將后臺數據庫中的一條記錄通過WIFI讀取到設備上,在設備上對數據進行修改,然后保存進數據庫。開發語言是C#,因為之前一直是開發winform的,所以考慮能不能像winform一樣操作數據庫?如果不行的話,有什么方法可以實現數據庫的操 ...… 查看全部問答∨ |
用Keil C編譯時,出現如下錯誤: WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_?TCPCONNECT?TCP 請問怎么解決?… 查看全部問答∨ |
(已解決)LM3S8962的GPIO Commit具體是啥意思啊? 哪位前輩知道LM3S8962的GPIO Commit具體是啥意思啊?請賜教:$ [ 本帖最后由 lilong8470 于 2010-8-30 23:15 編輯 ]… 查看全部問答∨ |
|
求教stm8l152c6 AD問題,兩個680k電阻串聯接到電源,中間點連到AD口檢測電壓,中點電壓應該是電源電壓的一半,但是測出來和電源電壓基本相同,是什么問題? 相同電路在430f235上測量就沒有問題,求教? ...… 查看全部問答∨ |
現在無線網絡非常普及,小區內,商場里,寫字間周圍,到處都遍布WIFI的無線網絡,由于無線網絡的特殊性,也帶來了嚴重的安全問題,蹭網一族也隨之產生。蹭網其實并不是只有黑客才能掌握的技能,只要你掌握了以下這些軟件(在黑白網絡都有下載并有相 ...… 查看全部問答∨ |
M4/M3 StellarisWare圖形庫入門系列(一)——基礎知識 1.前言TI Stellaris系列M3/M4之所以強大,StellarisWare軟件庫提供的快速軟件開發解決方案功不可沒。作為TI StellarisWare庫的一部分,StellarisWare圖形庫提供了一套比較完整的MCU圖形顯示方案,即可以進行圖形、文字的繪制,也可以輕松 ...… 查看全部問答∨ |
輸入電壓是VCC=6.5v,8050的基極輸入為cup輸出,請問這個電路是在充電多長時間才會形成通路,還是說構不成通路,小弟認為是夠不成通路,因為輸入電壓時6.5v當充滿電的時候c極電壓不就就近6.5v,6.5V>5.V根本就是反偏。請問我分析得正確嗎?( ...… 查看全部問答∨ |