АвторСообщение





Пост N: 5
Зарегистрирован: 28.01.13
Рейтинг: 0
ссылка на сообщение  Отправлено: 28.01.13 16:36. Заголовок: Непропорциональный сдвиг частоты PIC16F84A ASM


Необходимо самостоятельно сделать программу - сдвиг частоты:
Если на входе X (Гц), то на выходе Y (Гц)
67>45
52>43
40>40
Цель - "обмануть" мозг сплит/системы ДЭО, там три ступени потока воздуха, которые почти ни отличаются, проц (ПО сплита таково, что) поддерживает кол.импульсов 40,43,45 (скорость)поступающих с датчика Холла с мотора вентилятора внутреннего блока, но этого очень мало, короче ДЭО накосячили. причём на другом сплите такая-же картина, так что проблема в ПО
На данный момент, ради экспериманта, просто поставил "в разрыв" триггер на 155ТМ2, чисто пополам делит, но так лишь (ессно) максимальная скорость.

Вроде, как я частично программу оформил, но пока всё как-то разрозненно. Мне тяжело понять, как организовать ежесекундный (с выборкой в 1 сек, достаточно) учёт входящей частоты независимо от выходящей частоты?
Может Таймер использовать? и каждую секунду считывать его и потом обнулять?

Я сейчас на уровне развития - 1часть Самоучителдя КЕА и всё. На практике (в "железе"), для тренировки написал программу динамической индикации со счётом нажатий на кнопки +1, -1, ну и ещё несколько работ в "железе" тоже для практики. Потому пока что весьма тяжко, маловато знаний.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 55 , стр: 1 2 All [только новые]


moderator




Пост N: 579
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 30.01.13 22:00. Заголовок: На здоровье! А по на..


На здоровье! А по нашему и не надо. Все надо по своему, но смотреть, может кто и лучше сделал.

Спасибо: 1 
ПрофильЦитата Ответить
администратор




Пост N: 605
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг: 1
ссылка на сообщение  Отправлено: 31.01.13 09:26. Заголовок: MAZ пишет: На здоро..


MAZ пишет:

 цитата:
На здоровье! А по нашему и не надо. Все надо по своему, но смотреть, может кто и лучше сделал.


На все 100!!!
Но, думаю, у автора ещё будут вопросы.

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 26
Зарегистрирован: 28.01.13
Откуда: Россия, Белореченск
Рейтинг: 0
ссылка на сообщение  Отправлено: 31.01.13 12:31. Заголовок: Мммда, вопросы тольк..


Мммда, вопросы только начинаются :-)
И первый (хотя уже далеко не первый) вопрос: Уход в ПП прерываний происходит при:
1) перепаде на входе INT от 0 к 1, т.е. при фронте, в момент перепада (ессно, в регистрах всё установлено )
2) наличии на INT лог 1, т.е. пока на INT лог 1, то ПП прерываний будет видеть лог 1 и всё время ходить по кругу

должно быть как бы 1)

Если бит TOIE (разрешить прерывания по переполнению Tmr0) в 0, т.е. прерывания по переполнению запрещены, то при переполнении таймера флаг TOIF поднимется?
(пока писал, подумал, что этот вопрос можно в МПЛабе самому решить)
т.е.
3) это флаг переполнения ТМР0 или
4) это флаг фактапрерывания по переполнению?

вроде как должно быть 3)

И про вопросы... по ходу дела.. надо научиться 1-Wire, т.е. хочу научиться связывать DS18B20 и МК, подскажите где узнать...



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 27
Зарегистрирован: 28.01.13
Откуда: Россия, Белореченск
Рейтинг: 0
ссылка на сообщение  Отправлено: 31.01.13 14:36. Заголовок: Возникла мысль-вопро..


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

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 132
Зарегистрирован: 01.03.11
Рейтинг: 0
ссылка на сообщение  Отправлено: 31.01.13 17:56. Заголовок: Флаги поднимаются не..


Флаги поднимаются независимо от того, разрешены прерывания или нет.

Спасибо: 1 
ПрофильЦитата Ответить
moderator




Пост N: 580
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 31.01.13 18:02. Заголовок: я же писал org 0x..


я же писал
org 0x04 ; вектор прерывания
а расположить где угодно. компилятор видит что с 4-ой строчки в памяти программ

насчет флагов. откуда компилятору знать. надо включать прерывание или нет?
насчет их сбросов я тоже писал
Тут проблемы с отправкой файлов и рисунков. Можно перейти на чипмк. Там проще кидаться описанием на русском DS18B20

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 28
Зарегистрирован: 28.01.13
Откуда: Россия, Белореченск
Рейтинг: 0
ссылка на сообщение  Отправлено: 31.01.13 19:01. Заголовок: MAZ пишет: Можно пе..


MAZ пишет:

 цитата:
Можно перейти на чипмк


ОК! Эту программу тут добью и на чипмк...
MAZ пишет:

 цитата:
org 0x04 ; вектор прерывания


это я то вписал, вот только не догнал, что в этой 0х04 надо или начало программы прерываний ставить или переход на ПП прерываний, а я вверху Старт разместил..
Ничего, выстраданная ошибка крепче в память врезается.
За пояснение про флаги спасибо


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 351
Зарегистрирован: 25.09.09
Откуда: г.Саратов
Рейтинг: 1
ссылка на сообщение  Отправлено: 31.01.13 19:07. Заголовок: fugi1 пишет: то ПП..


fugi1 пишет:

 цитата:
то ПП прерываний будет видеть лог 1 и всё время ходить по кругу


Измените, долго не отслеживал ход. Что-то точно пропустил.
Заметь, что есть в рг. OPTION_REG бит 6 (INTEDG). Он определяет, выбор активного фронта сигнала на входе внешнего прерывания INT. Им можешь задать, какой ФРОНТ будет ожидать программа обработки прерывания.
Задай его в основной части или где. Главное - раньше, чем может прийти прерывание.
Сам делал так: писал часть программы (макрос, ПП, как хочешь назови), она должна быть достаточно короткой (чтобы не пропустить следующее событие - прерывание). В начале макроса ( о сохранении данных в рг. W STATUS и их восстановлении надо позаботится отдельно) убеждался, что флаг ожидаемого прерывания установлен (это бит INTF регистра INTCON, запрещал прерывание местное (в данном случае надо сбросить в 0 разряд INTE регистра INTCON. Далее - собственно код обработки прерывания, сбрасываю флажок местного прерывания INTF, разрешал местное прерывание 1 в INTE.
Не забывай в основной части программы разрешить глобальное прерывание (разряд GIE регистра INTCON)
Может сумбурно, описал как умел. Сделай себе "рыбу" из команд для макроса прерывания с комментариями, чтобы не забыть чего.
Сейчас от асм отпал, просто рефлексия.
Удачи.

Спасибо: 1 
ПрофильЦитата Ответить
moderator




Пост N: 581
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 31.01.13 19:43. Заголовок: fugi1 пишет: в этой..


fugi1 пишет:

 цитата:
в этой 0х04


Именно там и ставится вектор прерывания.
а в org 0x03 или раньше можно поставить goto Start

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 29
Зарегистрирован: 28.01.13
Откуда: Россия, Белореченск
Рейтинг: 0
ссылка на сообщение  Отправлено: 31.01.13 20:15. Заголовок: Вячеслав пишет: Сде..


Вячеслав пишет:

 цитата:
Сделай себе "рыбу"


не понял, про рыбу..

В моём случае выбор фронт/спад не важен, т.к. по совету СанСаныча, я сделал: прер>опрос Tmr0 > сохр результата>очистка Tmr0>выход (там-же опрос переполнения таймера) всё за один цикл.
Прерывание "случайно" тоже не случиться, ибо после запуска сплита выдержка около 3-5 сек, а потом старт мотора

Всё, народ :-))))))))))))))
просто переместил вверх списка ПП прерывания и всё заработало. Так, что написанная вчера программа была рабочая (кроме 2-х ошибок с ветвлением)

Даже рассчётные частоты (прописанные в ВП) попал 1:1, чего хотел, то и получил.
Всем огромное спасибо!!!

И ещё вопрос возник, как перевести МК на внутренний генератор, чтобы кварц не использовать, здесь такая точность не нужна.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 582
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 31.01.13 20:46. Заголовок: fugi1 пишет: я сде..


fugi1 пишет:

 цитата:
я сделал: прер>опрос Tmr0 > сохр результата>очистка Tmr0>выход (там-же опрос переполнения таймера) всё за один цикл.


Здесь ключевое. от чего прерывание. Т.е. постоянно мерим между передними фронтами или задними. Таким образом просто мерим период. Можно и так, только долго ждать результата.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 606
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг: 1
ссылка на сообщение  Отправлено: 01.02.13 00:41. Заголовок: MAZ пишет: Можно и ..


MAZ пишет:

 цитата:
Можно и так, только долго ждать результата.


В железе будет видно, но что то мне подсказывает, что всё прокатит. Тем более 3 периода за оборот двигателя с его суперплавностью вращения. тут даже 1 раз в секунду замер пойдёт. Для других целей может и нет, но задача под кондишку.
Я тут тоже проект заканчиваю, задачка попроще, но тоже многое для себя прояснил. Как будет готова, выложу.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 30
Зарегистрирован: 28.01.13
Откуда: Россия, Белореченск
Рейтинг: 0
ссылка на сообщение  Отправлено: 01.02.13 07:48. Заголовок: Уже прокатило :-) fu..


Уже прокатило :-)
fugi1 пишет:

 цитата:
Всё, народ :-)))))))))))))) просто переместил вверх списка ПП прерывания и всё заработало.



В этой задаче именно такой период (от фронта к фронту) и оказался удобен. Перед таймером - делитель 256, в таймере за 1 период лежит число, из которого диапазон от 57 до 140 используется для ВП
Всем ещё раз спасибо!

Скрытый текст

добавил сторожа, временные параметры не жёсткие, а перестраховка не помешает.
fugi1 пишет:

 цитата:
как перевести МК на внутренний генератор, чтобы кварц не использовать, здесь такая точность не нужна.


и ещё непонятка вылезла... если питаю МК от +5 вольт сплита, то упорно не работает, развязка на диоде+680мкф+0.1мкф не помогают, вот здесь чудеса какие-то


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 31
Зарегистрирован: 28.01.13
Откуда: Россия, Белореченск
Рейтинг: 0
ссылка на сообщение  Отправлено: 01.02.13 11:19. Заголовок: Всё, сплит собрал, с..


Всё, сплит собрал, сейчас стоит на прогонке. Поставил кварц и 7805 на питание, ну, и как говорил в программе включил сторожа

зарегился на chipmk.ru под логином wind, впервые за несколько лет сменил логин, (fugi1 - происходит от Беглецов)

на ЧИПМК создал тему ЧАСЫ


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 607
Зарегистрирован: 16.03.09
Откуда: Родина, Севастополь
Рейтинг: 1
ссылка на сообщение  Отправлено: 01.02.13 13:29. Заголовок: fugi1 пишет: Всё, с..


fugi1 пишет:

 цитата:
Всё, сплит собрал, сейчас стоит на прогонке.


Мои поздравления!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 55 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия