Esempio n. 1
0
void changeChargeMode(volatile uint8_t *array8){
	
	if(array8[numDischargeCharge]!=0){
		//Если кол-во итераций разрядки - зарядки не достигло 0
		if(array8[charge]) {
			//Если режим зарядки
			safeTimeCharge[indDisCharge][indChargeTime]=chargeTime;
			chargeTime=0;
			array8[numDischargeCharge]--;			
			
			USART_SendChar('N');
			sendDigitalUsart(indDisCharge+1);
			USART_SendChar('C');
			sendDigitalUsart(safeTimeCharge[indDisCharge][indChargeTime]);
			USART_SendChar('D');
			sendDigitalUsart(safeTimeCharge[indDisCharge][indDischargeTime]);
			indDisCharge++;
			
			if(array8[numDischargeCharge]==0){
				setPwm(0);
			}
			
		} else {
			safeTimeCharge[indDisCharge][indDischargeTime]=dischargeTime;
			dischargeTime=0;
		}
		
		array8[charge]^=1;
		initCharge(array8);
	}
}
void sprintf_u0(char *string) {
  unsigned char i=0;
  
  while(string[i])  {
  USART_SendChar(string[i++]);
  }
  USART_SendChar(0x0D);
  USART_SendChar(0x0A);
}
Esempio n. 3
0
int main( void )
{
  unsigned char key;
  
  //инициализация USART`a
  UBRRH = 0;
  UBRRL = 51; //скорость обмена 9600 бод при Fcpu = 8MГц
  UCSRB = (1<<TXEN); // разр передачи.
  UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //размер слова 8 разрядов
  
  //инициализация таймера Т0
  TIMSK = (1<<TOIE0); //разрешение прерывания по переполнению
  TCCR0 = (1<<CS02)|(0<<CS01)|(0<<CS00); //предделитель 256
  TCNT0 = 0x83; //прерывания каждые 4 мс
  
  //инициализация портов и переменных 
  InitKeyboard();
  __enable_interrupt();
  
  while(1){
    //если зафиксировано нажатие, 
    //отправить код кнопки в терминал
    key = GetKey();
    if (key)
      USART_SendChar(key);
  }
  return 0;
}
Esempio n. 4
0
void sendDigitalUsart(unsigned int sym){
	if(sym==0){
		USART_SendChar('0');
		return;
	}
	unsigned char i=0;
	unsigned char arrayDigital[5];
	while(sym!=0){
		arrayDigital[i++]=sym%10;
		sym/=10;
	}
	while(i!=0)	{
		USART_SendChar(arrayDigital[--i]+'0');		
	}
	
}
void SentUart( char *data, char len)    {
  char i;
  for (i=0; i<len; i++) {
    USART_SendChar(data[i]);
    
  }
}
Esempio n. 6
0
/* usart send string */
void USART_SendString(USART_TypeDef * const pUsart, const char * pInput)
{
    while (*pInput != '\0')
    {
        USART_SendChar(pUsart, *pInput);
        pInput ++;
    }
}
Esempio n. 7
0
void USART_SendString(USART_TypeDef* USARTx, char* string)
{
	while (*string != '\0')
	{
		USART_SendChar(USARTx, *string);
		string++;
	}
}
int main(void)
{
	TSDS18x20 DS18x20;
	TSDS18x20 *pDS18x20 = &DS18x20;
	char buffer[10];
	
	// AVR serial port init
	USART_init(103);
	
	// Init DS18B20 sensor
	if (DS18x20_Init(pDS18x20,&PORTD,PD5))
	{
		USART_SendString("Error!!! Can not find 1-Wire device attached on the bus!");
		return -1;
	}
	else
		USART_SendString("1-Wire device detected on the bus.");
	USART_SendChar(0x0D);

	// Set DS18B20 resolution to 9 bits.
	DS18x20_SetResolution(pDS18x20,CONF_RES_9b);
	DS18x20_WriteScratchpad(pDS18x20);
	
	// Initiate a temperature conversion and get the temperature reading
	if (DS18x20_MeasureTemperature(pDS18x20))
	{
		// Send the temperature over serial port
		USART_SendString("Current Temperature is: ");
		dtostrf(DS18x20_TemperatureValue(pDS18x20),9,4,buffer);
		USART_SendString(buffer);
		USART_SendChar('C');
		USART_SendChar(0x0D);
	}
	else
		USART_SendString("CRC error!!!");
	
	while(1);
	
	return 0;

}
Esempio n. 9
0
void UART_Test()
{
	unsigned short ch = 0x66;

	USART_Config();
	while(1)
	{
		USART_SendChar(ch);

		ch = USART_ReadChar();

		OSTimeDlyHMSM(0, 0, 0, 10);
	}
}
Esempio n. 10
0
int main()
{
	RCC_ClocksTypeDef RCC_Clocks;
	RCC_GetClocksFreq(&RCC_Clocks);

	SysTick_Config(RCC_Clocks.HCLK_Frequency / 100);

	InitializeLEDs();
	MyUSART_Init();

	setvbuf(stdout, 0, _IONBF, 0);
	printf("Hello!\r\n");

	char c;
	while(1)
	{
		if(USART_ReceiveChar(&c))
			USART_SendChar(c);

		SetLEDs(c);
	}
}