помогите с прошивкой для PIC16F873A

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
den81
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Чт мар 15, 2012 13:37:26

помогите с прошивкой для PIC16F873A

Сообщение den81 »

Добрый день! пытаюсь написать код в ССS для PIC16F873A для управления сервомоторами и LCD.

Помогите с прошивкой!
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: помогите с прошивкой для PIC16F873A

Сообщение pyzhman »

И где попытки?
Docendo discimus
Реклама
den81
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Чт мар 15, 2012 13:37:26

Re: помогите с прошивкой для PIC16F873A

Сообщение den81 »

подскажите что необходимо написать в начале кода для PIC16F84 и PIC16F873А
есть вот такой код для серводвигателя:

unsigned short MotorA_Speed = 127; // Ширина импульса ШИМ по умолчанию 50%
unsigned short MotorB_Speed = 127; // для обоих двигателей

// Переменные для работы с двигателями
unsigned short MotorA_Status = 0; // 0 - Выключен, 1 - Вперед, 2 - Назад
unsigned short MotorB_Status = 0;

unsigned short MotorA_CurrentSpeed = 255;
unsigned short MotorB_CurrentSpeed = 255;

unsigned short MotorInitStatus = 0; // Статус функции инициализации

const unsigned long PWMFreq = 5000;// Частота ШИМ

// Подключение моторов:
// *** Motor A *****
// RD0 ====> 1A
// RD1 ====> 1B
// RC2 ====> 1E (PWM1)

// *** Motor B *****
// RB1 ====> 2A
// RB2 ====> 2B
// RC1 ====> 2E (PWM2)

// Инициализация модулей ШИМ и двигателей
void MotorInit (void){
if (MotorInitStatus == 0) { // Это первый вызов функции?
MotorInitStatus = 1; // Установка состояния
ANSELH.F0 = 0; // RB1 - цифровой вход/выход
ANSELH.F2 = 0; // RB2 - цифровой вход/выход
TRISB.RB1 = 0; // Motor B 2A
TRISB.RB2 = 0; // Motor B 2B
TRISD.RD0 = 0; // Motor A 1A
TRISD.RD1 = 0; // Motor A 1B
PWM1_Init(PWMFreq); // Инициализация модулей ШИМ
PWM2_Init(PWMFreq);
}
}
den81
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Чт мар 15, 2012 13:37:26

Re: помогите с прошивкой для PIC16F873A

Сообщение den81 »

#include <16F877.h>
#use delay (clock = 4M)

void main() {

unsigned short MotorA_Speed = 127; // Ширина импульса ШИМ по умолчанию 50%
unsigned short MotorB_Speed = 127; // для обоих двигателей

// Переменные для работы с двигателями
unsigned short MotorA_Status = 0; // 0 - Выключен, 1 - Вперед, 2 - Назад
unsigned short MotorB_Status = 0;

unsigned short MotorA_CurrentSpeed = 255;
unsigned short MotorB_CurrentSpeed = 255;

unsigned short MotorInitStatus = 0; // Статус функции инициализации

const unsigned long PWMFreq = 5000;// Частота ШИМ

// Подключение моторов:
// *** Motor A *****
// RD0 ====> 1A
// RD1 ====> 1B
// RC2 ====> 1E (PWM1)

// *** Motor B *****
// RB1 ====> 2A
// RB2 ====> 2B
// RC1 ====> 2E (PWM2)

// Инициализация модулей ШИМ и двигателей

void MotorInit (void){

if (MotorInitStatus == 0) { // Это первый вызов функции?
MotorInitStatus = 1; // Установка состояния
ANSELH.F0 = 0; // RB1 - цифровой вход/выход
ANSELH.F2 = 0; // RB2 - цифровой вход/выход
TRISB.RB1 = 0; // Motor B 2A
TRISB.RB2 = 0; // Motor B 2B
TRISD.RD0 = 0; // Motor A 1A
TRISD.RD1 = 0; // Motor A 1B
PWM1_Init(PWMFreq); // Инициализация модулей ШИМ
PWM2_Init(PWMFreq);
}
}
}

при компилировании ССS пишет ошибка линии:
if (MotorInitStatus == 0) { // Это первый вызов функции?
MotorInitStatus = 1; // Установка состояния
ANSELH.F0 = 0;
ANSELH.F2 = 0; // RB2 - цифровой вход/выход
TRISB.RB1 = 0; // Motor B 2A
TRISB.RB2 = 0; // Motor B 2B
TRISD.RD0 = 0; // Motor A 1A
TRISD.RD1 = 0; // Motor A 1B
PWM1_Init(PWMFreq); // Инициализация модулей ШИМ
PWM2

что не так?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: помогите с прошивкой для PIC16F873A

Сообщение Аlex »

Экстрасенсы в отпуске.
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»