Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
PIC контроллеры. Программаторы и первый проект на PIC |
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
|
Опции темы |
18.11.2010, 09:06 | #661 |
Форумец
Сообщений: 82
Регистрация: 13.09.2010
Не в сети |
1.KS0108 хочу сделать меню как в телефоне т.е каждый рисунок это кнопка.
2.Почитал про Регистры TRISx но так и ничего не понял видимо не то читал. TRISA=0b 1 1 1 1 0 0 1 1; 0b ? RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 Обьясните пожалуйста? 3.TRISA=0b11110011; // все выводы PORTA на вход, RA2 и RA3 - выход #define Relay_On() PORTA=8 //этим включаем RA3, если поставить 7 то будет RA2 *почему 7 или 8? 4.Как включить одновременно RA2 и RA3 или с разных кнопок? Последний раз редактировалось Азат; 18.11.2010 в 12:21. |
18.11.2010, 13:26 | #662 | |
Форумец
|
Цитата:
TRISA=0b11110011 для запоминания - 0 похоже на Out -выход. для запоминания - 1 похоже на In -вход. PORTA = 8 = 0x08 = 0b00001000 - единица на RA3 PORTA = 12 = 0x0C = 0b00001100 - единицы на RA3 и RA2 PORTA = 4 = 0x04 = 0b00000100 - единица на RA2 |
|
18.11.2010, 19:31 | #666 | ||
Форумец
|
Цитата:
MikroC 8.2 - не вариант, PRO от 8.2 очень далеко ушел. Цитата:
|
||
18.11.2010, 22:39 | #667 |
Форумец
Сообщений: 36
Регистрация: 19.10.2010
Возраст: 58
Не в сети |
Спасибо за советы- попробую разобраться еще с про.. может там я что то намудрил...или недосмотрел..
Петр, А вот можно еще вопрос- нет ли у Вас примерчика какого нибудь для работы со встроенным компаратором ПИКа - чет я там слегка запутался... В хелпе нет библиотеки с компараторами... а жаль... |
19.11.2010, 12:42 | #670 |
Форумец
|
|
19.11.2010, 19:50 | #671 | |
Форумец
|
Цитата:
Не, примеров с компаратором у меня нет. А с чем запутались-то? |
|
19.11.2010, 22:56 | #672 |
Форумец
Сообщений: 36
Регистрация: 19.10.2010
Возраст: 58
Не в сети |
Та вот непонятно как организовать цикл чтения состояния выхода компаратора...
примерно тот же код что и ранее- только там активируется компаратор и отслеживается его выход- с установкой в 1 одного из цифровых выходов при срабатывании.. в принципе простой алгоритм-в ассемблере опять же все работает и в железе и в протеусе..а вот на си че то все мертво... Код:
unsigned short old_GPIO; void init() { CMCON = 0x07; TRISIO = 0x28; OPTION_REG = 0b11000101; INTCON.GIE = 0; } void main() { init() ; do { old_GPIO = GPIO; if(old_GPIO.F5 == 1) {TRISIO =0x28; old_GPIO.F1 = 1; old_GPIO.F0 = 0; GPIO = old_GPIO;} if(old_GPIO.F5 == 0) { CMCON = 0x04; VRCON = 0xA3; TRISIO = 0x2A; Delay_us(10); do { old_GPIO = GPIO; old_GPIO.F0 = 0; GPIO = old_GPIO; } while (CMCON.F6=0); old_GPIO = GPIO; old_GPIO.F0 = 1; GPIO = old_GPIO; } } while(1); } |
20.11.2010, 15:38 | #673 | ||
Форумец
Сообщений: 82
Регистрация: 13.09.2010
Не в сети |
Вращаеться вперед,назад.Не получаеться управлять скоростью мотора.Pwm_Change_Duty(speed) указываю.Почему?
Цитата:
Цитата:
|
||
20.11.2010, 21:34 | #675 |
Форумец
|
В принципе как и у остальных PIC16.
Подтягивающие резисторы имеет только PORTB и подключены они могут быть только когда входы настроены на вход. При переводе вывода на выход резистор этого вывода автоматически отключается. Подключение резисторов (после сброса отключены) производится через сброс бита 7 регистра OPTION. В MikroC PRO: Код:
OPTION_REG &= ~ (1<<7); или OPTION_REG.F7 = 0; или OPTION_REG.B7 = 0; или NOT_RBPU_bit = 0; |
20.11.2010, 22:22 | #676 | |
Форумец
|
Цитата:
2. Что-то Вы недопонимаете. Встроенная в MikroC библиотека ШИМ работает с аппаратным модулем CCP в режиме ШИМ. В PIC16F628A модуль CCP только один и сигнал аппаратного ШИМ выводится на RB3 и никуда кроме. А у Вас он по схеме куда подключен? (см. пост #45). Да и драйвер непонятно как включен. |
|
21.11.2010, 05:44 | #677 |
КваДраНутыЙ
Сообщений: 1,435
Регистрация: 29.05.2010
Не в сети |
|
21.11.2010, 09:12 | #678 | ||
Форумец
Сообщений: 82
Регистрация: 13.09.2010
Не в сети |
Только резистор надо поставить между En1 и RB3.Каким номиналом?Или не нужен?
Так правильно? Motor.h Цитата:
Цитата:
Последний раз редактировалось Азат; 21.11.2010 в 15:54. |
||
21.11.2010, 20:53 | #679 | |
Форумец
|
Цитата:
А кто научил в *.h файле писать код? Он не для этого предназначен. Об этом в help MikroC тоже говорится. Читайте - http://www.pic24.ru/doku.php/osa/articles/modules и http://www.pic24.ru/doku.php/osa/art...without_errors |
|
22.11.2010, 19:30 | #681 | |
КваДраНутыЙ
Сообщений: 1,435
Регистрация: 29.05.2010
Не в сети |
Цитата:
|
|
22.11.2010, 20:06 | #682 |
Форумец
|
|
22.11.2010, 20:50 | #684 |
Форумец
|
|
24.11.2010, 18:42 | #686 |
КваДраНутыЙ
Сообщений: 1,435
Регистрация: 29.05.2010
Не в сети |
petrd
А, не подскажите как сделать,что бы эта подпрограмма работала к примеру 1сек,а потом уходила на определенную метку? k11 bsf LATА,0 movlw d'25' movwf bank2 movlw d'12' movwf bank1 decfsz bank1,f bra $-2 decfsz bank2,f bra $-10 ;************************************** bcf LATА,0 movlw d'25' movwf bank2 movlw d'12' movwf bank1 decfsz bank1,f bra $-2 decfsz bank2,f bra $-10 bra k11 return |
24.11.2010, 19:14 | #687 |
Форумец
|
|
24.11.2010, 21:04 | #689 |
Форумец
|
Например так. Таймер (1мс). Прерывание по таймеру. В прерывании счетчик, инкремент каждое прерывание. Перед входом в подпрограмму сбросить счетчик. В подпрограмме проверять счетчик, если значение меньше нужного (<1000) - продолжить подпрограмму, если равно (=1000) выйти из подпрограммы.
|
24.11.2010, 21:49 | #690 | |
КваДраНутыЙ
Сообщений: 1,435
Регистрация: 29.05.2010
Не в сети |
Цитата:
|
|