Ejemplo n.º 1
0
void DisplayResult() {

    uart_puts("Temperatura:  ");
    uart_putint( temp, 10 );
    uart_puts("\nWilgotnosc: ");
    uart_putint( hum, 10 );
    uart_puts("%\r\n");
}
Ejemplo n.º 2
0
void SendTempUSART()
{
    uart_puts("Temperatura:  ");
    uart_putint( t_integer);
    uart_puts(".");
    uart_putint( t_fractional);
    uart_puts("\r\n");
}
Ejemplo n.º 3
0
int  main(void)
{
	//uart_set_FrameFormat(USART_8BIT_DATA|USART_1STOP_BIT|USART_NO_PARITY|USART_ASYNC_MODE); // default settings
	uart_init(BAUD_CALC(115200)); // 8n1 transmission is set as default
	
	stdout = &uart0_io; // attach uart stream to stdout & stdin
	stdin = &uart0_io; // uart0_in if no TX and uart0_out if no RX (depends on config macros)
	
	sei(); // enable interrupts, library wouldn't work without this
		
	uart_puts("hello from usart 0\r\n"); // write const string to usart buffer // C++ restriction, in C its the same as uart_putstr()
	//uart_puts("hello world\r\n"); // write const string to usart buffer // C++ restriction, in C its the same as uart_putstr()
	// if you do not have enough SRAM memory space to keep all strings, try to use puts_P instead
	uart_puts_P("hello from flashed, usart\r\n"); // write string to usart buffer from flash memory // string is parsed by PSTR() macro
	
		_delay_ms(5000);
	
	
	uart_puts_p(foo_string);
	
		
	char buffer[25];
	uart_gets(buffer, 25); // read at most 24 bytes from buffer (CR,LF will not be cut)
	
	
	int a;
	
	uart_puts("gimmie a number: ");
	a = uart_getint();
	
	
	uart_puts("numba a: ");
	uart_putint(a);
	uart_puts("\r\n");
	
	
	while(1)
	{
		uart_puts("bytes waiting in receiver buffer : ");
		uart_putint(uart_AvailableBytes()); // ask for bytes waiting in receiver buffer
		
		
		//uart_getsln(buffer, 25); // read 24 bytes or one line from usart buffer 
		
		
		if (!strcmp(buffer, "people who annoy you"))
		{
			uart_putc('>');
			_delay_ms(5000);
			uart_puts_P(" naggers");
		}
		
		
		uart_puts("\r\n");
		
		/*
		uart_putfloat(0.1337f);
		
		
		uart_puts("\r\n");
		uart_putstr(buffer); // write array string to usart buffer 
		uart_puts("\r\n");
		
		
		printf("Say my name: ");
		scanf("%s", buffer);
		
		printf("So it's %s, You are damn' right.\n", buffer);
		
		_delay_ms(5000);
		
		*/	
		
	}
	
}
Ejemplo n.º 4
0
int main(void){
	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ USTAWIENIA WSTÊPNE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	//ustawienie ADC
	ADCSRA |= (1<<ADEN); // w³¹cz ADC
	ADCSRA |= (1<<ADPS2); // preskaler = 16
	ADMUX = REF_VCC; // ustawiamy wewn Ÿród³o odniesienia
	//koniec ustawieñ ADC

	//przygotowanie przycisku na PD2 do u¿ycia
	DDRD &= ~(1<<PD2);
	PORTD |= (1<<PD2);
	//koniec przygotowania przycisku

	//inicjalizacja UART
	UART_Init( __UBRR );	// inicjalizacja UART
	//koniec inicjalizacji UART

	sei(); // zgoda na przerwania
	char zezwolenie = 0; 	//zmienna zezwolenie jest na potrzeby przycisku, po wciœniêciu ustawia siê na 0 i blokuje ponowne wciœniêcie,
							//natomiast po puszczeniu ustawia siê na 1 i pozwala na ponowne u¿ycie przycisku

	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ KONIEC USTAWIEÑ WSTÊPNYCH ~~~~~~~~~~~~~~~~~~~~~~~~




	while(1){

		if(pomiar(5)>18){ //minimalne napiêcie z czujnika to oko³o 91mV, ten if zabezpiecza przed pikami poni¿ej tej wartoœci

			licznik2=pomiar(5);//wykonanie pomiaru i nadpisanie zmiennej licznik2

			for(int juuu=1; juuu<=10; juuu++){ //ta pêtla sprawdza czy wykonany pomiar jest wiêkszy od którejœ wartoœci w tablicy i zastêpuje j¹

				if(licznik2>tablica[juuu]){

					tablica[juuu]=licznik2;
					juuu=10; // jak wejdzie do tego ifa, to wyskakuje z pêtli, nie przeszukuje jej dalej czyli wybiera pierwsz¹ napotkan¹

				}
			}


			SUMA=0; //zerowanie SUMY z poprzedniego pomiaru
			for(int juuu=0; juuu<=10; juuu++){ // sumowanie ca³ej tablicy

				SUMA=SUMA+tablica[juuu];

			}

			SUMA=SUMA/10; // podzielenie ca³ej tablicy przez iloœ elementów (œrednia)
			SUMA_pomoc=SUMA*5/1023; // przeliczenie uœrednionego ADC na V
			SUMAmV=SUMA_pomoc*1000; // przejscie na mV
			SUMA_pomoc=SUMAmV*26.91 - 2449; // przeliczenie tego wszystkiego si³ê

			//obs³uga UARTA, wypisanie wyników
			uart_puts("POMIAR F = ");
			uart_putint(SUMA_pomoc, 10);
			uart_puts("mN, czyli: ");
			uart_putint(SUMA_pomoc/1000, 10);
			uart_puts(" N | POMIAR ADC = ");
			uart_putint(SUMA, 10);
			uart_puts(", czyli: ");
			uart_putint(SUMAmV, 10);
			uart_puts("mV");
			uart_putc('\r');
			uart_putc('\n');

		}
		else{
			uart_puts("Napiecie ponizej 91mV. Podlacz czujnik");
			uart_putc('\r');
			uart_putc('\n');
		}


		if(!( PIND & (1<<PD2) )){//obs³uga przycisku, po naciœniêciu mozna wykonac kolejny pomiar

			_delay_ms(20); // opóŸnienie, a po nim kolejne sprawdzenie przycisku, w celu wyeliminowania drgañ
			if(!(PIND & (1<<PD2)) && zezwolenie==1){ // sprawdza czy przycisk jest wciœniêty i czy jest zezwolenie

				for(int juuu=0; juuu<=10; juuu++){

					tablica[juuu]=0;
					licznik2=0;
					SUMA=0;
					zezwolenie = 0; // ustawienie braku zezwolenia na kolejne wejœcie do tego ifa

				}

			}
		}//koniec obs³ugi przycisku

		if(PIND & (1<<PD2)){ //gdy przyciski nie s¹ aktywne, ustawiane jest zezwolenie

				zezwolenie = 1; //ma to na celu wyeliminowanie efektu podwójnego klikniêcia

		}


	}// koniec g³ównej pêtli while
}//koniec main()
Ejemplo n.º 5
0
void SendHumUSART()
{
    uart_puts("Wilgotnosc: ");
    uart_putint(hum);
    uart_puts("%\r\n");
}