роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: Помогите измерить дляительность импульса в BASCOM
s13 Post Id



Рядовой


Сообщений всего: 4
Дата рег-ции: Июнь 2009  



Доброго времени суток, наткнулся на следующую проблему.
Есть управляющий сигнал цикл которого 10 миллисекунд, управляющие импульсы от 0.8 до 1.2 мс, остальное время отводится на управление двигателем.

1мс - стоп
1.2мс - полный вперёд
0.8 - полный назад


но сегодня вычитал более современный вариант сигнала
1.5мс - стоп
2мс - полный вперёд
1мс - полный назад

Научился считать длительность между импульсами и решил измерить импульс 1мс (длительность импульса равна длительности паузы поэтому так и так 1 мс),
но как-то криво получилось:
таймером насчитал 256 импульсов (в протеусе)
1024/4,000,000*256 = 0,065536 сек - много как-то Улыбка

Но если измерять время между импульсами и из этого вытянуть длительность, то не останется промежутка на управление двигателем.

Помогите плиз измерить длительность импульса.
Заранее благодарен.

P.S. ЖКИ только в протеусе для индикации результата, ШИМ сделаю потом
Главное измерить длительность импульса.


CODE:

$regfile = "2313def.dat"
$crystal = 4000000
Config Lcd = 16 * 1
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Timer1 = Timer , Prescale = 1024 , Capture Edge = Falling

Dim Wtime As Byte
Dim Timercounter As Word

On Capture1 Captmr

Wtime = 100
Timercounter = 0

Enable Interrupts
Enable Capture1

Do
Waitms Wtime
Cls
Lcd "pwidth: " ; " " ; Capture1
Loop

Captmr:
Timercounter = Capture1
Timer1 = 0
Return

End
 
 Top
Страниц (1): [1]
« Микроконтроллеры »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru