lavender780510

    1. 關於LM4F120 2/3280 微控制器 MCU 2013-04-12
      //***************************************************************************** // // timers.c - Timers example. // // Copyright (c) 2012 Texas Instruments Incorporated.  All rights reserved. // Software License Agreement // // Texas Instruments (TI) is supplying this software for use solely and // exclusively on TI's microcontroller products. The software is owned by // TI and/or its suppliers, and is protected under applicable copyright // laws. You may not combine this software with "viral" open-source // software in order to form a larger program. // // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. // NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT // NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // DAMAGES, FOR ANY REASON WHATSOEVER. // // This is part of revision 9453 of the EK-LM4F120XL Firmware Package. // //***************************************************************************** #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/fpu.h" #include "driverlib/gpio.h" #include "driverlib/interrupt.h" #include "driverlib/pin_map.h" #include "driverlib/rom.h" #include "driverlib/sysctl.h" #include "driverlib/timer.h" #include "utils/uartstdio.h" #include "driverlib/uart.h" //***************************************************************************** // //! \addtogroup example_list //! Timer (timers) //! //! This example application demonstrates the use of the timers to generate //! periodic interrupts.  One timer is set up to interrupt once per second and //! the other to interrupt twice per second; each interrupt handler will toggle //! its own indicator on the display. //! //! UART0, connected to the Stellaris Virtual Serial Port and running at 115,200, //! 8-N-1, is used to display messages from this application. // //***************************************************************************** //***************************************************************************** // // Flags that contain the current value of the interrupt indicator as displayed // on the UART. // //***************************************************************************** unsigned long g_ulFlags; //***************************************************************************** // // The error routine that is called if the driver library encounters an error. // //***************************************************************************** #ifdef DEBUG void __error__(char *pcFilename, unsigned long ulLine) { } #endif //***************************************************************************** // // The interrupt handler for the first timer interrupt. // //***************************************************************************** void UARTIntHandler(void) {     unsigned long ulStatus;     //     // Get the interrrupt status.     //     ulStatus = ROM_UARTIntStatus(UART0_BASE, true);     //     // Clear the asserted interrupts.     //     ROM_UARTIntClear(UART0_BASE, ulStatus);     //     // Loop while there are characters in the receive FIFO.     //     while(ROM_UARTCharsAvail(UART0_BASE))     {         //         // Read the next character from the UART and write it back to the UART.         //         ROM_UARTCharPutNonBlocking(UART0_BASE,                                    ROM_UARTCharGetNonBlocking(UART0_BASE));         //         // Blink the LED to show a character transfer is occuring.         //         GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, GPIO_PIN_2);         //         // Delay for 1 millisecond.  Each SysCtlDelay is about 3 clocks.         //         SysCtlDelay(SysCtlClockGet() / (1000 * 3));         //         // Turn off the LED         //         GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0);     } } void Timer0IntHandler(void) {     //     // Clear the timer interrupt.     //     ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);     //     // Toggle the flag for the first timer.     //     HWREGBITW(&g_ulFlags, 0) ^= 1;     //     // Use the flags to Toggle the LED for this timer     //     GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, g_ulFlags
    2. MSP430外接UART IC 5/2815 微控制器 MCU 2013-04-08
      版主 您好 我datasheet看了好久 連最基本的鮑率設定都不太明白 更何況其他的 我陷入了困境了 >
    3. MSP430外接UART IC 5/2815 微控制器 MCU 2013-04-08
      本身支持 但數量太少 所以必須擴充
    4. 關於PxIN的問題 19/4940 微控制器 MCU 2013-01-31
      #include "msp430x14x.h" #define Bitime (8000000/2400u) #define Bitime_5 (8000000/(2400u*2)) unsigned int txflag,rxflag,rxport; int i=0; long rxtemp; //-----------------這裡是設定震盪器時間與初始腳位的設定------------------------------------// void main( void ) {   WDTCTL = WDTPW + WDTHOLD;   volatile unsigned int i;   BCSCTL1 &= ~XT2OFF;                       // XT2on  8MHz      do   {     IFG1 &= ~OFIFG;                           // Clear OSCFault flag     for (i = 0xFF; i > 0; i--);               // Time for flag to set   }while ((IFG1 & OFIFG));                  // OSCFault flag still set?      BCSCTL2 |= SELM_2 + SELS;   P1DIR |=0x01;   P1SEL=0x00;        //選擇我要用的腳位為IO功能   P1DIR|=0x03;       //指定腳位P1.0與P1.1為輸出方向,在這裡P1.1我把它當成tx   P1DIR&=~0x10;      //指定腳位P1.4為輸入方向,當成rx   P1OUT|=0x03;       //表示說P1.0與P1.1這兩隻腳都會是高電位 //-----------------這裡是在設定PORT1中斷的初始設定----------------------------//   P1IES|=0x10;       //選擇下降沿觸發(表示說電壓下降時會進入PORT1中斷))   P1IFG&=~0x10;      //清除中斷標誌   P1IE|=0x10;       //打開中斷的腳位 //---------------------------------------------------------------------------//   _BIS_SR(LPM4_bits+GIE);//進入全域中斷 } #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) {   if(P1IFG&0x10)//確定是P1.4這隻腳為中斷觸發的腳位   {     P1IFG&=~0x30;//把中斷標誌清除     _EINT();//這裡也是打開中斷(老實說我好像不太了解這個指令))     CCTL0=CCIE;//開啟timer中斷     CCR0=TAR+(Bitime_5);//這是計時器,一開始先設定在一半的時間進入timer中斷     TACTL=TASSEL_2 + MC_2;//調整時間寄存器的,選擇8M HZ的震盪器與連續的時間計算     LPM0;//低眠模式(我也不太知道他到底要幹嘛,只知道沒他動不了)     P1IE&=~0x10;//關閉中斷   } } #pragma vector=TIMERA0_VECTOR __interrupt void TIMER_A(void) {   i++;//計算算幾次         CCR0=CCR0+(Bitime);//計時器的時間以一位的時間累加     rxtemp=P1IN;//我設一個變數裝P1IN的值 ////-------------這裡是我讓收到的資料從另一隻腳顯示出來,檢查對不對的地方--------------//          if(P1IN & 0x10)//這裡表示P1IN(00010011)與00010000做乘法,如果乘出來是1那另一腳就會顯示1,如果不是就會顯示0         P1OUT|=0x03;//1       else         P1OUT&=~0x03;//0              rxtemp=rxtemp>>1;每算完一次位元就會右移              if(i==10)//i=10,表示已做完十次,就跳出timer中斷       {          CCTL0&=~CCIE;       }         }     }       }    你好, 這是我目前寫的程式碼 timer那邊這樣設定有問題嗎?
    5. 關於PxIN的問題 19/4940 微控制器 MCU 2013-01-26
      因為我需要做出多個RS232如果用原本就有的例程,最多只能做出3對,所以才會自己寫:Cry:
    6. 關於PxIN的問題 19/4940 微控制器 MCU 2013-01-26
      你好: 其實我是用IO中斷偵測有無下降沿發生,如果有就會進入IO中斷,我在IO中斷裡確定是哪隻腳目前有哪隻腳有資料進來後再進入timerA中斷,就在timerA中斷裡做接收的處理程序,只是回傳的資料偶爾會不對,我就看了一下PxIN的值,發現跟我所傳的碼是不同的,因此我就在懷疑是不是PxIN所存的碼是不對的,可是一直無法解決這個問題,我現在是利用IO模擬RS232。不知道我這樣敘述可以讓你了解嗎?:Sad:
    7. 關於PxIN的問題 19/4940 微控制器 MCU 2013-01-26
      wstt你好: 你的意思是說我訊號送入的那隻腳位跟我軟體設定的腳位有沒有一致嗎? 如果是這樣我也檢查過了耶>
    8. 關於PxIN的問題 19/4940 微控制器 MCU 2013-01-26
      可是我只是把一個0x55的訊號送給某一隻管腳,為什麼需要去量各個管腳是否對應呢???
    9. 關於PxIN的問題 19/4940 微控制器 MCU 2013-01-26
      wstt你好: 你的意思是說我訊號送入的那隻腳位跟我軟體設定的腳位有沒有一致嗎? 如果是這樣我也檢查過了耶>
    10. 關於PxIN的問題 19/4940 微控制器 MCU 2013-01-26
      方向設為輸入,但還是與電腦所傳的碼不同

最近访客

< 1/1 >

统计信息

已有170人来访过

  • 芯积分:--
  • 好友:--
  • 主题:7
  • 回复:10

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言