Ejemplo n.º 1
0
__interrupt void PORT1(void)
{
	if (P1IFG & TASTE_LINKS) {
		BIT_CLR(P1IFG, TASTE_LINKS);
		LED_ON(LED_ROT);
		
		SHT11_Read_Sensor();
		sprintf(uart_buffer, "%s %s\r\n", temp_char, humi_char);

		// USART konfigurieren		
		BIT_CLR(IFG2, UTXIFG1);	// interrupt flag loeschen
		BIT_CLR(IE2, UTXIE1);	// interrupt ausschaulten
		
		// DMA konfigurieren
		DMA2SZ = strlen(uart_buffer);
		DMA2DA = (unsigned int)&U1TXBUF; // speichere die Addresse des TX Buffers
		DMA2SA = (unsigned int)uart_buffer; // und die von unserem String
		DMACTL0 = DMA2TSEL3 + DMA2TSEL1; // Trigger wenn TX IFG gestezt ist
		// kopiere 1 Byte vom String ins TX Buffer bei jedem Transfer und erhoehe src um eins
		DMA2CTL = DMAEN + DMASRCINCR0 + DMASRCINCR1 + DMADSTBYTE + DMASRCBYTE;

		// Bescheid sagen, wenn der Transfer fertig ist
		BIT_CLR(DMA2CTL, DMAIFG);
		DMA2CTL += DMAIE;
		//Port 1.2 fuer die Messung anschalten
		BIT_SET(P1OUT, BIT2);
		BIT_SET(IFG2, UTXIFG1); // starte den ersten Transfer
	}
}
Ejemplo n.º 2
0
void Aufgabe21() {
    initSecTimer(1);
    
    _bis_SR_register(GIE);
    
    while(1) {
    	char buffer[32];
    	sprintf(buffer, "%d:%d:%d\t", dayTime.hh, dayTime.mm, dayTime.ss);
        uart1_put_str(buffer);
        
        SHT11_Read_Sensor();
        
        uart1_put_str(humi_char);
        uart1_put_str(temp_char);
        uart1_put_str("\r\n");
        
        wait_ms(1000);
        
    }
}
Ejemplo n.º 3
0
__interrupt void TIMERB0(void)
{
  char buffer[16];
	secs++;
	if (secs > 59) {
		mins++;
		secs %= 60;
		if (mins > 59) {
			mins %= 60;
			hours++;
			if (hours > 23) {
				hours %= 24;	
			}
		}
	}
	SHT11_Read_Sensor();
	print_buf(temp_char);
	print_buf(humi_char);
	sprintf(buffer, " %02d:%02d:%02d\r\n", hours, mins, secs);
	print_buf(buffer);
}