Esempio n. 1
0
void LD_ReloadMp3Data_2()
{
	uint32 nCurMp3Pos;
	uint8 val;
	uint8 k;

	nCurMp3Pos = nMp3StartPos + nMp3Pos;
	FLASH_CS=1;
	FLASH_CLK=0;
	FLASH_CS=0;

	 IO_Send_Byte(W25P_FastReadData);   
	 IO_Send_Byte(((nCurMp3Pos & 0xFFFFFF) >> 16));  
	 IO_Send_Byte(((nCurMp3Pos & 0xFFFF) >> 8));
	 IO_Send_Byte(nCurMp3Pos & 0xFF);
	 IO_Send_Byte(0xFF);

	ucStatus = LD_ReadReg(0x06);
	while ( !(ucStatus&MASK_FIFO_STATUS_AFULL) && (nMp3Pos<nMp3Size) )
	{
		val=0;
		for(k=0;k<8;k++)
		{
			FLASH_CLK=0;
			val<<=1;
			FLASH_CLK=1;
			val|=FLASH_DO;
		}
		LD_WriteReg(0x01,val);

		nMp3Pos++;

		ucStatus = LD_ReadReg(0x06);
	}
	
	FLASH_CS=1;
	FLASH_CLK=0;

}
Esempio n. 2
0
//------------------------------------------------------------------------------
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
_DINT();     // 關閉中斷

 InitTimeClock();
  P1DIR |=  (BIT0+BIT6+BIT3+BIT4);          // Set pin to output direction
  P1DIR &= ~(BIT1+BIT2+BIT7);               // Set pin to input direction
  P1OUT&=~BIT4;
  P1OUT&=~BIT6;                             //p1.6 一開始 為low

  P2SEL &= ~BIT6;                           //設定 P2.6為一般IO用途
  P2DIR &= ~BIT6;                           //set p2.6 input
  
  
 ms = 0;  sec = 0 ;   minute = 16 ;  hour = 11;  day = 22;  month = 12;  year = 12;
 delay = 0;
 /*
  CCTL0 = CCIE;                             // CCR0 interrupt enabled
  CCR0 = 102;
  TACTL = TASSEL_2 + MC_1;                  // SMCLK, upmode
 */
_EINT();    //開始中斷
   while(1){

     if( (P1IN&BIT1)==BIT1 )     //----SEACLOCK 送資料出去
     {  sMs = ms;
        sSec= sec;
        sMinute = minute;
        sHour = hour;
        sDay = day;
        sMonth = month;
        sYear = year;
        //-----------------------開始送
        IO_Send_Byte(sYear);
        IO_Send_Byte(sMonth);
        IO_Send_Byte(sDay);
        IO_Send_Byte(sHour);
        IO_Send_Byte(sMinute);
        IO_Send_Byte(sSec);
        IO_Send_Byte(sMs);
     }
     if((P1IN&BIT7)==BIT7 )
     {
       _DINT();     // 關閉中斷
       getTime_init();
       get_time();   //  獲取GPS時間字串
        
       //----- 同步處理
       while((P2IN&BIT6)!=BIT6);    // 等待 SeaScan  之 1pps  由H變L
       while((P2IN&BIT6)==BIT6);    //因為 SeaScan 之 1pps已經與GPS同步過
       ms = -1;
       //--當GPS由L變H   開始數 直到SEASCAN的PluS到來
       //--新版本不需要由PIN19同步
       
       _EINT();    //開始中斷
     }


   }

}