#include "AT91SAM7S256.h"
#include "lib_AT91SAM7S256.h"
#include "OK7S256ads.h"
//#define PWMC_MR (*(volatile unsigned int *) 0xFFFCC000)
#define PWMC_CMR0 (*(volatile unsigned int *) 0xFFFCC200)
#define PWMC_CDTYR (*(volatile unsigned int *) 0xFFFCC204)
#define PWMC_CPRDR (*(volatile unsigned int *) 0xFFFCC208)
//volatile unsigned int frequency=00000001;
__inline void AT91F_PWMC_CfgMode(
AT91PS_PWMC pPWM, // pointer to a PWM controller
unsigned int mode) // PWM_MR register value
{
pPWM->PWMC_MR = mode;
}
int main(void)
{
unsigned int PWM0_duty = 10, PWM1_duty = 20; // initial PWM duty value
MCU_initialize(); // initialize AT91SAM7S256 & kit
Delay_ms(50); // wait for system stabilization
AT91F_PWMC_CfgPMC(); // enable clock of PWMC
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, AT91C_PA1_PWM1 | AT91C_PA0_PWM0, 0);
// PWM1,PWM0 output(Peripheral A)
AT91F_PWMC_CfgMode(AT91C_BASE_PWMC, 0x031E031E); // CLKA=CLKB = 48MHz/8/30 =200kHz
// pPWM->PWMC_MR = 0x031A031E;
//------------------------------------모터1 pa0 포트 로 출력이 나오고 증속은 pa07 콘트롤한다-------------
//AT91F_PWMC_CfgChannel(AT91C_BASE_PWMC, 0, 0x020B, 2000, PWM0_duty); // CLKA/100 = 2kHz
PWMC_CMR0 = 0x020B;
PWMC_CDTYR = PWM0_duty;
PWMC_CPRDR =850;
//------------------------모터 2 pa1 포트 로 출력이 나오고 듀티비가 달라진다 pa08 콘트롤한다------------
AT91F_PWMC_CfgChannel(AT91C_BASE_PWMC, 1, 0x020B, 1000, PWM1_duty); // CLKA/200 = 1kHz
//-----------------------------------------------------------------------------------------------------
AT91F_PWMC_StartChannel(AT91C_BASE_PWMC, AT91C_PWMC_CHID1 | AT91C_PWMC_CHID0);
// start PWM1 and PWM0
while(1)
{ switch(Key_input())
{
case 1:
if(PWMC_CPRDR >550)// 가장높은 최대 주파수 (최고속도의 주기 550)
PWMC_CPRDR -= 50;// 가속되는 주기(가속주파수)
else
PWMC_CPRDR=800;//기동 주기(가장 낮은주파수)
break;
}
}
}
L297 핀 설정
1
2 GND(=LOW)
3
4 A
5 B
6 ~A
7
8 ~B
9
10 5V(=HIGH)
11 GND(=LOW)
12 5V(=HIGH)
13
14
15
16 GND(=LOW)
17 5V(=HIGH)
18 CLOCK (암 포트 PA0) 신호입력
19 GND(=LOW)
20 5V(=HIGH)
'로봇_PROJECT > 모터부' 카테고리의 다른 글
arm 7 스텝모터 제어 백업 2월16일 1-2상 half 제어 (0) | 2010.02.16 |
---|---|
arm 7 으로 가속도센서 및 스텝모터 구 동 완성 (0) | 2010.02.12 |
arm 7 가속도 센서 이용 스텝모터 앞뒤(기준값 500: 평행 ) 가속하기 (0) | 2010.02.12 |
arm 7 L297 +7024 이용한 스텝모터 가감속 프로그램(PWM 방식) (0) | 2010.02.09 |
pwm 스텝모터 주파수 변경하기(속도제어) (0) | 2010.02.03 |