Пример #1
0
// copy from software TX FIFO to hardware TX FIFO
// stop when software TX FIFO is empty or hardware TX FIFO is full
void static copySoftwareToHardware(void){
  char letter;
  while(((UART0_FR_R&UART_FR_TXFF) == 0) && (TxFifo_Size() > 0)){
    TxFifo_Get(&letter);
    UART0_DR_R = letter;
  }
}
Пример #2
0
/*
===================================================================================================
  USB_UART :: USB_UART_HandleTXBuffer
  
   - does... something....
===================================================================================================
*/
void USB_UART_HandleTXBuffer(void){
  char letter;
  while(((UART0_FR_R&UART_FR_TXFF) == 0) && (TxFifo_Size() > 0)){ //while not full put copy from SW to HW fifo
		
    TxFifo_Get(&letter);
    UART0_DR_R = letter;
		
  }
}
Пример #3
0
int main(void){ 
  PLL_Init(Bus80MHz); 	// 80 MHz
  UART_Init();      		// initialize UART device
	//initialize ADC, hardware timer trigger, 100Hz sampling
	ADC0_InitTimer0ATriggerSeq3PD3(f100HZ);  
	TxFifo_Init();	// initialize FIFO
	ST7735_InitR(INITR_REDTAB); // initialize LCD
	ST7735_InitTemperatureGraph();	// initialize graph area
	
	EnableInterrupts();

	while(1){
		TxFifo_Get(&adcValue);	// get most recent ADC value from FIFO
		ST7735_UpdateTemperatureGraph(numSamples, adcValue); // plot new point and display ADC and temperature values
    numSamples++;                       // counts the number of samples
	}
}
Пример #4
0
// RDRF set on new receive data
// TDRE set on an empty transmit data register
interrupt 21 void SCI1Handler(void){ char data; 
 //PTT_PTT3 = 1;
 if(SCI1SR1 & RDRF){ 
#if HISTOGRAM
    RxHistogram[1][RxFifo_Size(1)]++;
#endif
    RxFifo_Put(1,SCI1DRL); // clears RDRF
  }
  if((SCI1CR2&0x80)&&(SCI1SR1&TDRE)){
    if(TxFifo_Get(1,&data)){
      SCI1DRL = data;   // clears TDRE
    }
    else{
      SCI1CR2 = 0x2c;   // disarm TDRE
    }
  } 
  //PTT_PTT3 = 0;
}
Пример #5
0
int main2(void){    int i;
  // *************** Test #1: test transmit (index) FIFO **************
  TxFifo_Init();
  result = TxFifo_Get(&letter); // letter = ??, result = 0
  result = TxFifo_Put('A');     // result = 1
  result = TxFifo_Put('B');     // result = 1
  result = TxFifo_Put('C');     // result = 1
  result = TxFifo_Get(&letter); // letter = 0x41, result = 1
  result = TxFifo_Get(&letter); // letter = 0x42, result = 1
  result = TxFifo_Put('D');     // result = 1
  result = TxFifo_Size();       // result = 2
  result = TxFifo_Get(&letter); // letter = 0x43, result = 1
  result = TxFifo_Get(&letter); // letter = 0x44, result = 1
  result = TxFifo_Size();       // result = 0
  result = TxFifo_Get(&letter); // letter = ??, result = 0
  for(i='A'; i<'A'+TXFIFOSIZE; i=i+1){
    result = TxFifo_Put(i);     // result = 1
  }
  result = TxFifo_Size();       // result = 16
  result = TxFifo_Get(&letter); // letter = 0x41, result = 1
  result = TxFifo_Size();       // result = 15
  result = TxFifo_Get(&letter); // letter = 0x42, result = 1
  result = TxFifo_Size();       // result = 14
  result = TxFifo_Put(' ');     // result = 1
  result = TxFifo_Size();       // result = 15
  // *************** Test #2: test receive (pointer) FIFO *************
  RxFifo_Init();
  result = RxFifo_Get(&letter); // letter = ??, result = 0
  result = RxFifo_Put('A');     // result = 1
  result = RxFifo_Put('B');     // result = 1
  result = RxFifo_Put('C');     // result = 1
  result = RxFifo_Get(&letter); // letter = 0x41, result = 1
  result = RxFifo_Get(&letter); // letter = 0x42, result = 1
  result = RxFifo_Put('D');     // result = 1
  result = RxFifo_Size();       // result = 2
  result = RxFifo_Get(&letter); // letter = 0x43, result = 1
  result = RxFifo_Get(&letter); // letter = 0x44, result = 1
  result = RxFifo_Size();       // result = 0
  result = RxFifo_Get(&letter); // letter = ??, result = 0
  for(i='A'; i<'A'+RXFIFOSIZE-1; i=i+1){
    result = RxFifo_Put(i);     // result = 1
  }
  result = RxFifo_Size();       // result = 9
  result = RxFifo_Get(&letter); // letter = 0x41, result = 1
  result = RxFifo_Size();       // result = 8
  result = RxFifo_Get(&letter); // letter = 0x42, result = 1
  result = RxFifo_Size();       // result = 7
  result = RxFifo_Put(' ');     // result = 1
  result = RxFifo_Size();       // result = 8
  // *********** Test #3: test transmit (index) FIFO creator **********
  Tx2Fifo_Init();
  result = Tx2Fifo_Get(&letter);// letter = ??, result = 0
  result = Tx2Fifo_Put('A');    // result = 1
  result = Tx2Fifo_Put('B');    // result = 1
  result = Tx2Fifo_Put('C');    // result = 1
  result = Tx2Fifo_Get(&letter);// letter = 0x41, result = 1
  result = Tx2Fifo_Get(&letter);// letter = 0x42, result = 1
  result = Tx2Fifo_Put('D');    // result = 1
  result = Tx2Fifo_Size();      // result = 2
  result = Tx2Fifo_Get(&letter);// letter = 0x43, result = 1
  result = Tx2Fifo_Get(&letter);// letter = 0x44, result = 1
  result = Tx2Fifo_Size();      // result = 0
  result = Tx2Fifo_Get(&letter);// letter = ??, result = 0
  for(i='A'; i<'A'+TX2FIFOSIZE; i=i+1){
    result = Tx2Fifo_Put(i);    // result = 1
  }
  result = Tx2Fifo_Size();      // result = 32
  result = Tx2Fifo_Get(&letter);// letter = 0x41, result = 1
  result = Tx2Fifo_Size();      // result = 31
  result = Tx2Fifo_Get(&letter);// letter = 0x42, result = 1
  result = Tx2Fifo_Size();      // result = 30
  result = Tx2Fifo_Put(' ');    // result = 1
  result = Tx2Fifo_Size();      // result = 31
  // *********** Test #4: test receive (pointer) FIFO creator *********
  Rx2Fifo_Init();
  result = Rx2Fifo_Get(&letter);// letter = ??, result = 0
  result = Rx2Fifo_Put('A');    // result = 1
  result = Rx2Fifo_Put('B');    // result = 1
  result = Rx2Fifo_Put('C');    // result = 1
  result = Rx2Fifo_Get(&letter);// letter = 0x41, result = 1
  result = Rx2Fifo_Get(&letter);// letter = 0x42, result = 1
  result = Rx2Fifo_Put('D');    // result = 1
  result = Rx2Fifo_Size();      // result = 2
  result = Rx2Fifo_Get(&letter);// letter = 0x43, result = 1
  result = Rx2Fifo_Get(&letter);// letter = 0x44, result = 1
  result = Rx2Fifo_Size();      // result = 0
  result = Rx2Fifo_Get(&letter);// letter = ??, result = 0
  for(i='A'; i<'A'+RX2FIFOSIZE-1; i=i+1){
    result = Rx2Fifo_Put(i);    // result = 1
  }
  result = Rx2Fifo_Size();      // result = 26
  result = Rx2Fifo_Get(&letter);// letter = 0x41, result = 1
  result = Rx2Fifo_Size();      // result = 25
  result = Rx2Fifo_Get(&letter);// letter = 0x42, result = 1
  result = Rx2Fifo_Size();      // result = 24
  result = Rx2Fifo_Put(' ');    // result = 1
  result = Rx2Fifo_Size();      // result = 25
  while(1);
}