Страница 2 из 3
M@X99
asaw
у тебя после "@" буква g?
asaw
M@X99
да, это почта на google mail - gmail.com
XTC
M@X99 писал(а):

XTC
Спасибо!
Этот текст как я понимаю нужно просто скопировать и вставить в конец программы?



Нет, это псевдокод Smile

Ну что-то типа этого должно быть по смыслу...если присутствует операционка...
если нет - немного по другому Pardon
asaw
XTC
там должно быть что-то типа вызова функции DT2_AddTimer() + сама функция обратного вызова (нужно написать).
XTC
asaw писал(а):

XTC
там должно быть что-то типа вызова функции DT2_AddTimer() + сама функция обратного вызова (нужно написать).



Я исходников не видел, поэтому только предполагаю...
asaw
XTC
я тоже исходников ещё не видел - ТС учится пользоваться электронной почтой pst
M@X99
asaw
pst
я тебе уже 3 раза отправил!
могу здесь исходник кинуть)
M@X99
приходит на почту ответ что письмо не может быть отправленно nea
M@X99
[asaw
посмотри ещё разок вроде отправилось)
asaw
M@X99
#include "7188e.h"

//#include <conio.h>
//#include <stdlib.h>
//#include <stdio.h>

const int PORT = 2;
const unsigned long BAND = 9600;
const int DATA = 8;
const int PARITY = 1;
const int STOP = 1;


unsigned int crc_chk(unsigned char* data, unsigned char length)
{
int j;
unsigned int reg_crc = 0xFFFF;
while (length--)
{
reg_crc ^= *data++;
for (j=0; j<8; j++)
{
if (reg_crc & 0x01)
{
reg_crc = (reg_crc >> 1) ^ 0xA001;
}
else
{
reg_crc = reg_crc >> 1;
}
}
}
return reg_crc;
}


void set_crc(unsigned char* A, int len)
{
unsigned int crc;
crc = crc_chk(A,len-2);
A[len-2] = crc;
A[len-1] = (crc>>8)&0xFF;
Print("\n\rcrc: %i\n\r", crc);
}




void main()
{
Print("Started\n\r");

if (InstallCom(PORT, BAND, DATA, PARITY, STOP) != NoError)
{
Print("Error init\n\r");
return;
}



unsigned char A[8]={0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char B[20];
int err;

/* 10 Hz */
A[1] = 0x06;
A[2] = 0x20;
A[3] = 0x01;
A[4] = 0x03;
A[5] = 0xE8;

set_crc(A,8);

err = ToComBufn(PORT, A, 8);
if (err != 8 )
{
Print("Error write to port (change): %i\n\r", err);
return;
}

DelayMs(500);

/* start */
A[1] = 0x06;
A[2] = 0x20;
A[3] = 0x00;
A[4] = 0x00;
A[5] = 0x12;
set_crc(A,8);

err = ToComBufn(PORT, A, 8);
if (err != 8 )
{
Print("Error write to port (start): %i\n\r", err);
return;
}

while (1)
{
DelayMs(200);

A[1] = 0x08;
A[2] = 0x00;
A[3] = 0x00;
A[4] = 0x17;
A[5] = 0x70;

set_crc(A,8);

err = ToComBufn(PORT, A, 8);
if (err != 8)
{
Print("Error write to port (stop): %i\n\r", err);
return;
}

}


DelayMs(300);


/* stop */
A[1] = 0x06;
A[2] = 0x20;
A[3] = 0x00;
A[4] = 0x00;
A[5] = 0x01;

set_crc(A,8);

err = ToComBufn(PORT, A, 8);
if (err != 8)
{
Print("Error write to port (stop): %i\n\r", err);
return;
}

Print("\n\rStopped\n\r");
}
XTC
M@X99 писал(а):

цикл состоит из пуска, реверса и торможения. программа написана так что сигнал на частотник идёт не постоянно, а так: идет один сигнал на пуск, один на реверс и один на торможение. !



А вот и нифига:

В программе уже написано, что какой-то сигнал отсылается постоянно, раз в 200 милисекунд (0.2сек). Вот здесь:

while (1)
{
DelayMs(200);

A[1] = 0x08;
A[2] = 0x00;
A[3] = 0x00;
A[4] = 0x17;
A[5] = 0x70;

set_crc(A,8);

err = ToComBufn(PORT, A, 8);
if (err != 8)
{
Print("Error write to port (stop): %i\n\r", err);
return;
}

Сигнал определяется кодами в A[1]...A[5].
Короче, смотри мануал, что эти цифры значат Pardon
M@X99
XTC
это знакомый дополнял программу, он сказал что не уверен что правильно написал!
Как я понял ошибка скорей всего в пунктах А1-А5?
s-t-r-i-k-e-r
Чё эта хоть? Мозги для Гранты?
M@X99
для преоры pst
да это лабу никак немогу здать! препод дотошный попался,эта хрень вообще не по моей специальности Smile
Кот Чеширский
Код:

while (1)
{
DelayMs(200);

A[1] = 0x08;
A[2] = 0x00;
A[3] = 0x00;
A[4] = 0x17;
A[5] = 0x70;

set_crc(A,8);

err = ToComBufn(PORT, A, 8);
if (err != 8)
{
Print("Error write to port (stop): %i\n\r", err);
return;
}



Нравится мне вот это выражение while(1) вечный цикл выход из которого только если в порт не можем ничего передать.
Good
s-t-r-i-k-e-r
M@X99 писал(а):

для преоры pst
да это лабу никак немогу здать! препод дотошный попался,эта хрень вообще не по моей специальности Smile


пишу 2 проекта там дали тоже проги писать офигеть какие не на программерской специальности facepalm
M@X99
Кот Чеширский
Я в этом не шарю Pardon чё исправить надо?
XTC
M@X99 писал(а):

XTC
это знакомый дополнял программу, он сказал что не уверен что правильно написал!
Как я понял ошибка скорей всего в пунктах А1-А5?



По ходу программа ставит 10Hz на драйвер мотора, запускает мотор, потом постоянно шлет сигнал с периодичностью 200мСек....
До шага остановить мотор она не дойдет никогда... hehe

Что такое за числа в A[1]...A[5] - хз - мы тут не телепаты, см управляющий регистр драйвера мотора, его описание.

И вообще, какая последовательность действий должна быть? Запустить, сколько времени или шагов крутить итд.?
asaw
M@X99 писал(а):

XTC
это знакомый дополнял программу, он сказал что не уверен что правильно написал!
Как я понял ошибка скорей всего в пунктах А1-А5?


А мы это откуда должны знать? Думаешь, контроллер 7188 - центр мира?
Ну поменяй на
/* start */
A[1] = 0x06;
A[2] = 0x20;
A[3] = 0x00;
A[4] = 0x00;
A[5] = 0x12;
- посмотри чего получится. А вообще такие вещи выясняются из документации к тому, чему ты эти команды посылаешь.
M@X99
XTC
1-запускается,крутит(40сек)
2-реверс(10сек), остановка) как то так
PachaG
M@X99
а есть исходник ДО того, как друг что-то делал?
M@X99
у меня нет((
XTC
M@X99 писал(а):

XTC
1-запускается,крутит(40сек)
2-реверс(10сек), остановка) как то так



Меняй While(1) на for(int i=0; i<(40000/200); i++) -это 40 сек.

потом копируй этот блок (от { до } )
пишешь for(int i=0; i<(10000/200); i++) -это 10 сек и в А[1]...A[5] - настройки для реверса
Кот Чеширский
M@X99

можешь по приколу поменять while(1) на for (;Wink не изменится ровным счетом ничего.
Новая тема Ответить на тему
Показать сообщения:
Страница 2 из 3
Перейти:
ИНФОРМАЦИЯ ПО ИКОНКАМ И ВОЗМОЖНОСТЯМ

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