示例#1
0
//**************************************************************
// main()
//**************************************************************
int main(){
#define Adresse 0x9E			// evtl 9F für schreiben?
#define	Read	1
#define Write	0
	unsigned char ucTemp1,ucTemp2;			// Deklaration der Variablen

	display_init();							// Initialisiere Display

	int i;
	while(1) {
		signed int avg = 0;
		for(i = 0; i < 64; i++) {
			// Setzen der Startbedingung und warten bis slave antwortet mit ACK0
			while(i2c_start(Adresse+Read));
			ucTemp1 = i2c_rbyte(0);					// Erstes Byte einlesen
			ucTemp2 = i2c_rbyte(1);					// Zweites Byte einlesen
			i2c_stop();								// I2C wieder freigeben

			// Ausgabe der gelesenen Werte

			display_set_cursor(0, 0);
			print_temp(tempwert(ucTemp1, ucTemp2));
			avg += tempwert(ucTemp1, ucTemp2);
			delay5ms(100);							// Verzögerung 100 ms
		}
		display_set_cursor(0, 1);
		print_temp(avg >> 6);
	}
	while(1);								// Endlosschleife
}
示例#2
0
文件: lcd1602.c 项目: aixiwang/nc2cnc
//--------------------------
// init_lcd1602
//--------------------------
void init_lcd1602(void)
{
 unsigned char i;
 //char	init_logo[32];

 delay5ms();

 wr_com(0x38);	//设置显示模式:8位2行5x7点阵 	
 delay5ms();
 wr_com(0x38);	//设置显示模式:8位2行5x7点阵 	
 wr_com(0x38);	//设置显示模式:8位2行5x7点阵 
 wr_com(0x38);	//设置显示模式:8位2行5x7点阵 

// 8bit / 4bit
 wr_com(0x06);	//文字不动,光标自动右移
 wr_com(0x01);	//清屏并光标复位
 wr_com(0x0c);	//显示器开、光标关、光标允许闪烁关	

}
示例#3
0
uint16_t Single_Write(unsigned char SlaveAddress,unsigned char REG_Address,unsigned char REG_data)		     //void
{
  	if(!I2C_Start())return FALSE;
    I2C_SendByte(SlaveAddress);   //发送设备地址+写信号//I2C_SendByte(((REG_Address & 0x0700) >>7) | SlaveAddress & 0xFFFE);//设置高起始地址+器件地址 
    if(!I2C_WaitAck()){I2C_Stop(); return FALSE;}
    I2C_SendByte(REG_Address );   //设置低起始地址      
    I2C_WaitAck();	
    I2C_SendByte(REG_data);
    I2C_WaitAck();   
    I2C_Stop(); 
    delay5ms();
    return TRUE;
}
示例#4
0
文件: ioi2c.c 项目: HapCoderWei/MiniQ
bool Single_Write(unsigned char SlaveAddress,unsigned char REG_Address,unsigned char REG_data)		     //void
{
  	if(!I2C_Start())return FALSE;
    I2C_SendByte(SlaveAddress);   //发送设备地址+写信号
    if(!I2C_WaitAck()){I2C_Stop(); return FALSE;}
    I2C_SendByte(REG_Address );   //设置低起始地址      
    I2C_WaitAck();	
    I2C_SendByte(REG_data);
    I2C_WaitAck();   
    I2C_Stop(); 
    delay5ms();
    return TRUE;
}
示例#5
0
文件: lcd1602.c 项目: aixiwang/nc2cnc
//-----------------------
// wr_data
//-----------------------
void 
wr_data(unsigned char dat)
{
  LCDE_L;
  RW_L;
  RS_H;
  LCDE_H; 
  SET_LCMDATA(dat);
  delay50us();
  LCDE_L;
  RS_L;
  delay5ms();
  //delay50us();

}
示例#6
0
//**************************************************************
// main()
//**************************************************************
int main(){
//	unsigned char ucTemp1,ucTemp2;			// Deklaration der Variablen
	unsigned char Adresse = 0b10011110;

	display_init();							// Initialisiere Display

	i2c_start(Adresse);						// Führt die Startbedingung aus
											// Erstes Byte einlesen
											// Zweites Byte einlesen
	i2c_stop();								// I2C wieder freigeben

											// Programm zur Verarbeitung der
											// eingelesenen Werte

	delay5ms(20);							// Verzögerung 100 ms

	while(1);								// Endlosschleife
}
示例#7
0
文件: lcd1602.c 项目: aixiwang/nc2cnc
//-----------------------
// wr_com
//-----------------------
void 
wr_com(unsigned char comm)
{

// 8bit
  LCDE_L;
  RS_L;
  RW_L;
  LCDE_H;
  SET_LCMDATA(comm);
  delay50us();
  LCDE_L;
  delay5ms();
  //delay50us();



}
示例#8
0
//**************************************************************
// main läßt LED am Port P30 für ca. 1 Minute mit 1 Hz blinken
//**************************************************************
int main(){
	unsigned char ucB=120;					// lokale Variable ucB
	unsigned int mask = (LED1 | LED2 | LED3 | LED4 | LED5);

	AT91C_BASE_PIOA->PIO_OER = mask;		// Freigabe des LED-Port-Pins
	AT91C_BASE_PIOA->PIO_OWER = mask;		// Register: Schreib-Freigabe des Output Write Enable Register
	AT91C_BASE_PIOA->PIO_PPUDR = mask;		// Ausschalten des Pull-up-Widerstandes

	AT91C_BASE_PIOA->PIO_ODSR &= ~mask;

	AT91C_BASE_PIOA->PIO_ODSR = (LED1 | LED3 | LED5);
	while (ucB--){
		AT91C_BASE_PIOA->PIO_ODSR ^= mask;	// LED1 ein
		delay5ms(100);						// Verzögerung von 500ms
	}

	while (1);								// Endlosschleife nach eigentlichem
											//  Programm: niemals vergessen!
}