ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

PIC16F887 + Linux
  #1  
Старый 01.05.2010, 22:01
M.W.N.N.
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме:
3020589

Репутация: 240
По умолчанию PIC16F887 + Linux

Здравствуйте. Подскажите пож-та срезу для разработки ПО под PIC микроконтроллер PIC16F887 и программатор.
ОС Linux (Ubuntu 9.10)

Под Windows в комплекте идет компилятор microC + ПО для программатора - PICkit 2 v2.4

Комплект RoboPica

Последний раз редактировалось M.W.N.N.; 01.05.2010 в 22:06..
 
Ответить с цитированием

  #2  
Старый 02.05.2010, 01:58
M.W.N.N.
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме:
3020589

Репутация: 240
По умолчанию

Сразу еще 1 вопрос:
Вот моя библиотека для управления двигателем mator.h
Код:
char motor_duty_=127;
char motor_init_=0;

void Motor_Init()
{
     if(motor_init_==0){
                        motor_init_=1;
						ANSELH.F0=0;
						ANSELH.F2=0;
						TRISB.F1=0;
						TRISB.F2=0;
						TRISD.F0=0;
						TRISD.F1=0;
						Pwm1_Init(5000);
						Pwm2_Init(5000);
					   }
}

void Change_Duty(char speed)
{

				if(speed!=motor_duty_)
                                      {
                                      motor_duty_=speed;
							          Pwm1_Change_Duty(speed);
							          Pwm2_Change_Duty(speed);
							          }
}


void Motor_A_FWD(){
     Pwm1_Start();
     PORTD.F0=0;
     PORTD.F1=1;
     }

void Motor_B_FWD(){
     Pwm2_Start();
     PORTB.F1=0;
     PORTB.F2=1;
     }

void Motor_A_BWD(){
     Pwm1_Start();
     PORTD.F0=1;
     PORTD.F1=0;
     }

void Motor_B_BWD(){
     Pwm2_Start();
     PORTB.F1=1;
     PORTB.F2=0;
     }

void M_A_F(){
     Pwm1_Stop();
     PORTD.F0=0;
     PORTD.F1=0;
     }
void M_B_F(){
     Pwm2_Stop();
     PORTB.F1=0;
     PORTB.F2=0;
     }

void Forward(char speed){
     Motor_Init();
     Change_Duty(speed);
     Motor_A_FWD();
     Motor_B_FWD();
     }

void Backward(char speed){
     Motor_Init();
     Change_Duty(speed);
     Motor_A_BWD();
     Motor_B_BWD();
     }

void S_Right(char speed){
     Motor_Init();
     Change_Duty(speed);
     Motor_A_FWD();
     Motor_B_BWD();
     }

void S_Left(char speed){
     Motor_Init();
     Change_Duty(speed);
     Motor_A_BWD();
     Motor_B_FWD();
     }

void Motor_Stop(){
     Motor_Init();
     Change_Duty(0);
     M_A_F();
     M_B_F();
     }
Код программы которую гружу в микроконтроллер:
Код:
#include "motor.h"
void main(){
while(1){
Forward(255);
Delay_ms(2000);
S_Left(255);
Delay_ms(800);
Forward(255);
Delay_ms(2000);
S_Right(255);
Delay_ms(800);
Forward(255);
Delay_ms(2000);
Backward(255);
Delay_ms(1000);
Motor_Stop;
}
}
По идее робот должен так:
2000 мс ехать вперед
800 мс поворачивать налево
2000 мс ехать вперед
800 мс поворачивать на право
2000 мс ехать вперед
1000 мс ехать на зад.

Но он постоянно едет в перед.

Последний раз редактировалось M.W.N.N.; 02.05.2010 в 02:25..
 
Ответить с цитированием

  #3  
Старый 02.05.2010, 09:19
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме:
3718311

Репутация: 1118


Отправить сообщение для POS_troi с помощью ICQ
По умолчанию

Я не очень в Сях и темболее под Пик но попробуй всеже так

Код:
#include "motor.h"
void main(){
while(1){
Forward(255);
Delay_ms(2000);
Motor_Stop(); // Тоесть перед сменой направления стопить все движки
S_Left(255);
Delay_ms(800);
Motor_Stop();
Forward(255);
Delay_ms(2000);
Motor_Stop();
S_Right(255);
Delay_ms(800);
Motor_Stop();
Forward(255);
Delay_ms(2000);
Motor_Stop();
Backward(255);
Delay_ms(1000);
Motor_Stop;
}
}
Также, что за функции

Pwm1_Start();
Pwm2_Start(); ?

Стандарт или самописные? Многие делают ошибки при инициализации Шим.

А среду бери из "Центр приложений" или как он там называется (тот что в главном меню в самом конце) , ищи поиском по сочетанию "PIC". Там их штук 5 будет наверное.

Последний раз редактировалось POS_troi; 02.05.2010 в 09:22..
 
Ответить с цитированием

  #4  
Старый 02.05.2010, 14:18
M.W.N.N.
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме:
3020589

Репутация: 240
По умолчанию

POS_troi спасибо за совет, я пробовал после каждого действия останавливать двигатели, но он как будто не замечает этого. Странно что если сделать только 2 действия он выполняет нормально на пример: поехать в перед и повернуть на право.

Pwm1_Start();
Pwm2_Start();
Это стандартные функции, старт двигаетелей помойму. С шим 100 процентов ничего не напутанно, функцию Шим"а брал с книги которая идет к роботу:
Код:
void Change_Duty(char speed)
{

				if(speed!=motor_duty_)
                                      {
                                      motor_duty_=speed;
							          Pwm1_Change_Duty(speed);
							          Pwm2_Change_Duty(speed);
							          }
Буклет надо сказать они выпустили кислый
 
Ответить с цитированием

  #5  
Старый 02.05.2010, 17:15
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме:
3718311

Репутация: 1118


Отправить сообщение для POS_troi с помощью ICQ
По умолчанию

Тут дело в том что Шим тебе по умолчанию дает только положительный импульс и соответственно двигатель у тебя будет крутить только вперед , ну хотя если у тебя те функции стандартные то может както и можно указать шиму что ему отдать (положительный период или отрицательный).

Вообще для данного дела лучше использовать драйверы, никаких проблем.

Есть три ножки и рули как хочеш

на первую подал - вперед поехал
на вторую падал - назад поехал
на третью ШИМ завел и с разно скоростью поехал

Красота, ели пали =)
 
Ответить с цитированием

  #6  
Старый 02.05.2010, 18:03
M.W.N.N.
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме:
3020589

Репутация: 240
По умолчанию

Вот мое чудо
http://imglink.ru/pictures/02-05-10/fffd6d6d91247248e425f6326fe20bd8.jpg

Последний раз редактировалось M.W.N.N.; 02.05.2010 в 20:48..
 
Ответить с цитированием

  #7  
Старый 02.05.2010, 19:49
M.W.N.N.
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме:
3020589

Репутация: 240
По умолчанию

Цитата:
Сообщение от POS_troi  
Тут дело в том что Шим тебе по умолчанию дает только положительный импульс и соответственно двигатель у тебя будет крутить только вперед , ну хотя если у тебя те функции стандартные то может както и можно указать шиму что ему отдать (положительный период или отрицательный).
От шима зависит скорость движения, а для движения вперед и назад просто идет обращение к разным портам.
Значения ШИМ от 0 до 255

Кто знает почему программа движения работает не корректно?
 
Ответить с цитированием

  #8  
Старый 02.05.2010, 20:40
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме:
3718311

Репутация: 1118


Отправить сообщение для POS_troi с помощью ICQ
По умолчанию

Кусочек схемы, драйвера двигателя можеш выложить?

З.Ы. Пореж фоту, ато Ачат уехал =/
 
Ответить с цитированием

  #9  
Старый 02.05.2010, 20:54
M.W.N.N.
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме:
3020589

Репутация: 240
По умолчанию

Вот схема http://imglink.ru/show-image.php?id=386e79fde73bbb846c3cafa66f99303b
 
Ответить с цитированием

  #10  
Старый 03.05.2010, 14:28
M.W.N.N.
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме:
3020589

Репутация: 240
По умолчанию

Нашел программатор и компилятор в 1 - Piklab, но он по ходу KDE зависим - просит подгрузить уйму библиотек KDE'ных. При компилировании вылетает, так что мои поиски продолжаются
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не знаешь какой Linux выбрать? Есть проблемы с установкой *nix? Тогда тебе сюда... L0rd_Ha0S *nix 212 21.04.2010 04:56
Места, где трудится Linux Ro666oT Болталка 5 19.04.2010 17:46
Books PSalm69 Избранное 248 27.10.2009 04:52
[ Обзор уязвимостей Linux Kernel ] FraiDex *nix 3 10.09.2009 08:01



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ