|
счетчик импульсов, как организовать счет за 1 секунду |
|
|
|
Jan 4 2008, 23:52
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 17-12-07
Пользователь №: 33 355

|
Подскажите как организовать счет импульсов за определенное время.Смысл такои......Допустим на INT0 пускаи считает до бесконечности сколько сможет а на INT1 считает количество импульсов за 1 секунду, записывает в переменную R,сбрасывается на 0 и считает заново.Я что-то недопонимаю, так как только начал работать с контроллерами.Подправте код
' *************************************************************************** ' * ' * Title : int0.bas ' * Program code : BASCOM AVR ' *************************************************************************** $regfile = "m8def.dat" ' use the Mega8
$crystal = 4000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Enable Interrupts Enable Int0 Enable Int1 Config Int1 = Rising Config Int0 = Rising On Int0 Label33 On Int1 Label33 Dim Counter As Long Dim N As Long Counter = 0
Do N = 100 * Counter Locate 1 , 1 Lcd "Int0: " ; N Loop
End
Label33: Incr Counter Return
Сообщение отредактировал JimBaton - Jan 4 2008, 23:56
|
|
|
|
|
Jan 5 2008, 09:51
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 17-12-07
Пользователь №: 33 355

|
Aesthete Animus мне больше нравится и удобнее Bascom
Непомнящий Евгений Bascom AVR
Ну так что неужели никто не работает в Барсике и не знает как сделать?
Сообщение отредактировал JimBaton - Jan 5 2008, 09:54
|
|
|
|
|
Jan 5 2008, 10:04
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Так в чем проблема-то? Вы пишете о некой переменной "R". Что-то в проге я ее не вижу. У вас по-идее при каждом импульсе по входам 0, 1 увеличивается Counter и постоянно выводится на дисплей (это насколько я понял ваш код - в васике я для МК ничего не писал  ). Что конкретно не работает?
|
|
|
|
|
Jan 5 2008, 11:02
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 17-12-07
Пользователь №: 33 355

|
в переменную N считаются логические 1 с INT0 до усёра, а в переменную R должны считаться логические 1 с INT1 так чтобы он считал количество по истечение 1 секунды а потом счетчик INT1 сбрасывался на 0 а INT0 продолжал считать дальше.Еслибы я знал где секунда и кто ее формирует, Евгений Германович, я бы все давно сделал, а дело в том что я еще совсем зеленый в контроллерах и прошу помощи организовать программу.
|
|
|
|
|
Jan 5 2008, 11:34
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 17-12-07
Пользователь №: 33 355

|
да черт с неи с этои пременнои R ну что не определить переменную разве. Dim R as long вот переменная.Режим СТС......я же говорю что я еще мало чего знаю........прошу кусок кода для записи в переменную R количества импульсов с INT1 за 1 секунду.Ну это же должно быть так просто, а я из-за еще недостаточных знании не понимаю как и для меня переполнение регистра 1 раз в секунду ничего не говорит.
|
|
|
|
|
Jan 5 2008, 13:00
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 17-12-07
Пользователь №: 33 355

|
ну ладно.Тогда сможете организовать на чем умеете.На Си как я понимаю?.
|
|
|
|
|
Jan 5 2008, 15:31
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 17-12-07
Пользователь №: 33 355

|
tyro.......ФАК Я.Не умничаи
Да что мне этот даташит.Если я не понимаю как работает таимер, но очень хочу разобратся.На ассемблере или на Си не хочу,хочу на барсике.Я просто нашел этот код в сети и мне бы его с вашеи помощью подработать до нужного мне результата.Примерчик для толчка вот и все
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|