Показать сообщение отдельно
Старый 21.11.2010, 09:12   #678   
Форумец
 
Сообщений: 82
Регистрация: 13.09.2010

Азат вне форума Не в сети
Только резистор надо поставить между En1 и RB3.Каким номиналом?Или не нужен?
Так правильно?
Motor.h
Цитата:
char motor_duty_=127;
char motor_init_=0;

void Motor_Init()
{ if (motor_init_==0)
{motor_init_=1;
TRISB.F0=0;
TRISB.F1=0;
Pwm_Init(5000);
}
}

void Change_Duty(char speed)
{
if (speed != motor_duty_)
{
motor_duty_=speed;
Pwm_Change_Duty(speed);
}
}

void Motor_A_FWD()
{Pwm_Start();
PORTB.F0=0;
PORTB.F1=1;
}
void Motor_A_BWD()
{Pwm_Start();
PORTB.F0=1;
PORTB.F1=0;
}
void Motor_A_OFF()
{Pwm_Stop();
PORTB.F0=0;
PORTB.F1=0;
}

void Forward(char speed)
{Motor_Init();
Change_Duty(speed);
Motor_A_FWD();
}
void Backward(char speed)
{Motor_Init();
Change_Duty(speed);
Motor_A_BWD();
}
void Motor_Stop()
{Motor_Init();
Change_Duty(0);
Motor_A_OFF();
}
Сама программа
Цитата:
#include <motor.h>
void main()
{
CMCON=7;
PORTB = 0;
TRISB = 0;
while (1)
{
Forward(10);
delay_ms(2000);
Forward(255);
delay_ms(2000);
Motor_Stop();
delay_ms(1000);
Backward(255);
delay_ms(1000);
Motor_Stop();
delay_ms(1000);
}
}
Миниатюры
Нажмите на изображение для увеличения
Название: 202.jpg
Просмотров: 60
Размер:	51.8 Кб
ID:	1033853  

Последний раз редактировалось Азат; 21.11.2010 в 15:54.
  Ответить с цитированием