==========================================================================================

ARM

==========================================================================================


<ARM>


=

<DBBU.C>


void DBGU_Rx_ISR(void)

  
switch ((*AT91C_DBGU_RHR)&0x000000FF)// 1byte 추출
  {
    
case 'M':  
    
case 'm':      
      DBGU_Menu();
      
break;
    case '1':
      LCD_Inst(LCD_INST_CLR);
      LCD_Print(
"LCD DISPLAY");
      
break;

    
default :
      DBGU_Str(
"Wrong Command\n\r");
      DBGU_Menu();
      
break;
  }
  
return;
}



=‘1’ 전송 => LCD DISPLAY




=센서 : ADC 컨버터 이용

=센서 모듈 : 초음파 센서 SRF05

http://www.robot-electronics.co.uk/htm/srf05tech.htm

http://itsmart333.tistory.com/attachment/cfile26.uf@2406A14355D438B1100CE9.pdf

소리 속도 : 340m/sec











==TIMER COUNTER







=XC0 - 외부 입력 => 자동자 엔진 RPM






=PWM












=

<TIMER.C>

#include "timer.h"

// 0번 타이머 접두어: TC0 // 1번 타이머 접두어: TC1 // 2번 타이머 접두어: TC2
// 예: #define TC0_CCR    ((volatile unsigned int *)0xFFFA0000)
// 인터럽터 관련 : AT91C_BASE_AIC
// 0번 타이머 관련 : AT91C_BASE_TC0
// PMC 관련   : AT91C_BASE_PMC

void Timer_Init(void)
{
// 타이머 카운터 0 사용을 위한 PMC 활성화(AT91C_ID_TC0)
   
// 1.시작 : 타이머 클럭 비활성화 ------------------
// 타이머 클럭 비활성화(TC_CCR 설정)


// 2. 시작 : 타이머 인터럽트 비활성화 -------------
// 타이머 인터럽트 비활성화(TC_IDR 설정)
// 인터럽트 상태 정보 초기화(TC_SR 읽기)

// 분주비 1024, 비교 방식 레지스터 설정(TC_CMR, DIV5_CLOCK, AT91C_TC_CPCTRG)
// MCKR divided by 4096 
=> 12, 0.25us(TC_RC 설정)

// 타이머 카운터 0 인터럽트 비활성화(AIC_IDCR, AT91C_ID_TC0)

// 3. 시작 : 타이머 카운터 0 인터럽트 비활성화 ------
// 타이머 카운터 0 인터럽트 핸들러 등록(AIC_SVR[AT91C_ID_TC0], timer_handler)
// 타이머 카운터 0 인터럽트 모드 설정(AIC_SMR[AT91C_ID_TC0], AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, AT91C_AIC_PRIOR_LOWEST)
// 타이머 카운터 0 인터럽트 클리어(AIC_ICCR, AT91C_ID_TC0)

// TC_RC 값 비교 타이머 인터럽트 활성화(TC_IER, AT91C_TC_CPCS)

// 2. 끝 : 타이머 인터럽트 비활성화 ---------------

// 타이머 카운터 0 인터럽트 활성화(AIC_IECR, AT91C_ID_TC0)

// 3. 끝 : 타이머 카운터 0 인터럽트 비활성화 -------

// 타이머 클럭 활성화(TC_CCR, AT91C_TC_CLKEN)

// 1. 끝 : 타이머 클럭 비활성화 ------------------

// 타이머 시작(TC_CCR, AT91C_TC_SWTRG)

}


void Timer_ISR(void)
{
// 인터럽트 상태 정보 초기화(TC_SR 읽기)
// LED 토글 프로그래밍
// 인터럽트 상태 정보 초기화(TC_SR 읽기)
}






'2015 스마트 콘트롤러 > 업무일지' 카테고리의 다른 글

20150821  (0) 2015.08.23
20150820  (0) 2015.08.21
20150818  (0) 2015.08.19
20150817  (0) 2015.08.18
20150814  (0) 2015.08.17
Posted by ahj333
,