Большой Воронежский Форум
Страница 20 из 43
« Первая < 1014151617181920 21222324252630 > Последняя »
»Радиолюбитель>PIC контроллеры. Программаторы и первый проект на PIC
petrd 10:12 01.10.2010

Сообщение от Азат:
petrd, Получается мне нужно поставить второе?

Да........ [Ответ]
Азат 10:08 02.10.2010
petrd, Что все равно не так при нажатие на кнопку несколько раз счетчик увеличивается и в какой то момент в шапке появляються ироглифы и зависает.Пробывал сразных пультов Philips,Samsung,LG более менее себя показал. [Ответ]
Юрий20 19:06 02.10.2010
petrd приветик! я ту-та новенький. можно вопросик? [Ответ]
Юрий20 19:18 02.10.2010
petrd, я возможно ухожу от темы ссори подскажешь может по пик 16ф628а я немного делетант. надо сделать так чтобы при нажатии на кнопочку на одном из портов появился высокий уровень и при нажатии на этуже кнопочку переходил в низкий уровень. вопррос глупый но может поможете. [Ответ]
Юрий20 20:17 02.10.2010
мужики ХЕЛП!!!! помогите с пиком плиз!!! [Ответ]
Electrik84 22:31 02.10.2010
Здравствуйте, Петр.
Вот и я на старости лет решил Си для ПИКов заняться. В asm'е потихоньку пишу, раньше для связи МК с ПК использовал RS-232, но в последнее время вижу что пора переходить на USB. Решил заняться MikroC, так что принимайте в состав учеников. [Ответ]
Electrik84 22:40 02.10.2010

Сообщение от Юрий20:
пик 16ф628а. надо сделать так чтобы при нажатии на кнопочку на одном из портов появился высокий уровень и при нажатии на этуже кнопочку переходил в низкий уровень.

Вы бы потрудились почитать первые две-три страницы, там это всё есть, расписано и разжевано, приложите хоть капельку своего труда. [Ответ]
petrd 09:18 03.10.2010

Сообщение от Азат:
Что все равно не так при нажатие на кнопку несколько раз счетчик увеличивается и в какой то момент в шапке появляються ироглифы и зависает.Пробывал сразных пультов Philips,Samsung,LG более менее себя показал.

Не знаю, почему у Вас так, сейчас проверить не могу, железа под рукой нет. А у Вас ПДУ точно с RC5?

to Юрий20
Смотрите посты №42 и №45 в них есть то, что Вы хотите.

to Electrik84

Сообщение от :
Вот и я на старости лет решил Си для ПИКов заняться. В asm'е потихоньку пишу, раньше для связи МК с ПК использовал RS-232, но в последнее время вижу что пора переходить на USB. Решил заняться MikroC, так что принимайте в состав учеников.

Всегда рады. Относительно USB - в MikroC реализована библиотека только HID устройств, позиция разработчиков такова - HID не требует дополнительных драйверов, а сделать можно тоже, что и с CDC. К тому же под HID они сделали терминал.

P.S. Вышла новая версия MikroC PRO 4.10 http://www.mikroe.com/forum/viewtopi...ca624e2f3e9fbf [Ответ]
Азат 13:37 03.10.2010
petrd, Все ПДУ RC5 при чем текст меняеться как в в первой строке так и во второй потом ироглифы всевозможные проценты и зависание. [Ответ]
Юрий20 13:48 03.10.2010
Electrik84, пасибо ссори не внемательный [Ответ]
Electrik84 00:49 04.10.2010

Сообщение от petrd:
Вышла новая версия MikroC PRO 4.10

цена кусается [Ответ]
petrd 06:44 04.10.2010

Сообщение от Electrik84:
цена кусается

А зачем покупать, Вам 2К кода на первое время мало? [Ответ]
petrd 15:25 04.10.2010

Сообщение от Азат:
petrd, Что все равно не так при нажатие на кнопку несколько раз счетчик увеличивается и в какой то момент в шапке появляються ироглифы и зависает.Пробывал сразных пультов Philips,Samsung,LG более менее себя показал.

В архиве hex файл, который у меня работает на PIC16F628A (код также проверял на PIC16F887). Прошейте этим файлом.
Изображения
[Ответ]
Electrik84 22:25 04.10.2010

Сообщение от petrd:
А зачем покупать, Вам 2К кода на первое время мало?

на первое время вроде и не мало [Ответ]
petrd 16:00 08.10.2010
MikroE выпустили интересную штуку Visual GLCD. [Ответ]
VRTP 19:00 09.10.2010
Приветствую всех!
petrd
Вопрос к Вам,с кодировками Кейлог и Старлайн не приходилось сталкиваться в программных написаниях??? [Ответ]
petrd 20:05 10.10.2010

Сообщение от VRTP:
Приветствую всех!
petrd
Вопрос к Вам,с кодировками Кейлог и Старлайн не приходилось сталкиваться в программных написаниях???

В апнотах от Microchip видел, а так нет за ненадобностью. [Ответ]
VRTP 18:01 11.10.2010

Сообщение от petrd:
В апнотах от Microchip видел, а так нет за ненадобностью.

Понял,спасибо за ответ.А,ка на счет АЦП,приходилось по прямому назначению,с развязкой по оптике? [Ответ]
petrd 19:25 11.10.2010

Сообщение от VRTP:
Понял,спасибо за ответ.А,ка на счет АЦП,приходилось по прямому назначению,с развязкой по оптике?

Не понял ничего из Вашего вопроса. [Ответ]
VRTP 20:05 11.10.2010
Контроль выхода через оптику(развязка),завтра кусок схемы на обзор. [Ответ]
petrd 20:17 11.10.2010

Сообщение от VRTP:
Контроль выхода через оптику(развязка),завтра кусок схемы на обзор.

Завтра, значит, завтра. [Ответ]
VRTP 05:21 12.10.2010
Собственно вот,мега 8.Хочеться понять как происходит контроль напряжения.
Изображения
Нажмите на изображение для увеличения
Название: 11-20100429-2.jpg
Просмотров: 102
Размер:	126.4 Кб
ID:	975262  
[Ответ]
petrd 12:29 12.10.2010

Сообщение от VRTP:
Собственно вот,мега 8.Хочеться понять как происходит контроль напряжения.

Да вроде ничего особенного не видно.
ADC2 - измерение напряжения ОС через развязку, этот же сигнал идет на компаратор AIN1;
AIN0 - опорное напряжение для компаратора.
AIN1 - вход компаратора, видимо какая-то пороговая защита. [Ответ]
VRTP 18:09 12.10.2010
Вот не могу понять как это работает.Можно как то приблизиться к этому на 18ой серии? [Ответ]
petrd 18:42 12.10.2010

Сообщение от VRTP:
Вот не могу понять как это работает.Можно как то приблизиться к этому на 18ой серии?

А почему нет? Только как это работает по одной схеме, тем более по ее куску, тяжело сказать. Оно же все увязано, вон и ШИМ-контроллер виден, а внутри меги видимо что-то типа ПИД алгоритма лежит. [Ответ]
VRTP 19:20 12.10.2010
Куда скинуть всю схему?Просто оная в ДИП Трассе.Могу откоментить. [Ответ]
Butik 22:05 19.10.2010
Доброго времени суток Господа! Я тут новичок пока.. Но смотрю что тут собрались истинные любители и знатоки микроконтроллеров..
Я с микроконтроллерами знаком уже давненько- но в основном работал на ассемблере..
А тут вот возникла необходимость перевести на микроси некоторые программы...
И вот столкнулся с трудностями..
Есть некоторая схема в которой простой PIC12F629 работает в роли как бы датчика- при изменении уровня на одном из входов он должен на других формировать импульсы(или последовательность импульсов) но не сразу а с некоторой задержкой определяемой временем переполнения и прерывания от таймера TMR0- при чем это время может меняться.При этом изменение уровня на входе происходит через время меньшее чем врнемя переполнения таймера и предделителя(ну скажем это импульсный сигнал..). И вот столкнулся с проблемой- mikroC не хочет принимать обработку двух прерываний- короче.. вот фрагмент программы- может кто подскажет в чем тут криминал???
При этом при компиляции ошибки нет.. а вот в симуляторе и протеусе ничего не работает...


unsigned short reg1;
void interrupt()
{
if(INTCON.GPIF){
reg1 =150;
TMR0=reg1;
INTCON.GPIF = 0 ;
}

if(INTCON.T0IF){
GPIO.F4=1;
Delay_us(500);
GPIO.F4=0;
INTCON.T0IF = 0;
}
}

void init() {
CMCON = 0x07;
TRISIO = 0b00001001;
WPU =0x00;
INTCON.GPIE = 1;
INTCON.T0IE = 1;
INTCON.PEIE = 1;
IOCB =0x01;
OPTION_REG = 0b10000101;
INTCON.GIE = 1;
}

void main() {
do {
init();
} while(1);
} [Ответ]
petrd 07:41 20.10.2010

Сообщение от Butik:
Я с микроконтроллерами знаком уже давненько- но в основном работал на ассемблере..
А тут вот возникла необходимость перевести на микроси некоторые программы...
И вот столкнулся с трудностями..
Есть некоторая схема в которой простой PIC12F629 работает в роли как бы датчика- при изменении уровня на одном из входов он должен на других формировать импульсы(или последовательность импульсов) но не сразу а с некоторой задержкой определяемой временем переполнения и прерывания от таймера TMR0- при чем это время может меняться.При этом изменение уровня на входе происходит через время меньшее чем врнемя переполнения таймера и предделителя(ну скажем это импульсный сигнал..). И вот столкнулся с проблемой- mikroC не хочет принимать обработку двух прерываний- короче.. вот фрагмент программы- может кто подскажет в чем тут криминал???
При этом при компиляции ошибки нет.. а вот в симуляторе и протеусе ничего не работает...

Давно? А ошибки детские.
1. Чтобы работало прерывание по изменению уровня на выводах надо в прерывании сначала прочитать порт, чтобы убрать несоответствие, а потом сбросить флаг GPIF, об этом в каждом DS написано. К тому же это прерывание Microchip не рекомендует использовать для всяких опросов, лучшее применение ему - выход из SLEEP.
2. В прерывании используете задержку 500 мкс, от этого теряется весь смысл прерываний, в контроллере для этого таймеры есть.
3. Зачем включать PEIE, если прерывание от периферийных модулей не используется? Это так для информации, в Вашем случае это просто лишнее.
4. Зачем в главном цикле постоянно производить инициализацию? Сделайте ее один раз перед циклом, а цикл пусть пустой крутится.
5. В битах конфигурации MCLR отключен? [Ответ]
Butik 21:58 20.10.2010
Уважаемый коллега!На счет детских ошибок- всякое в жизни может быть.. и если Вы с контроллерами имеете дело скажем каждый день по 24 часа на протяжении там скажем 2-3 месяцев.. то у Вас могут быть свои ошибки.. А если кто либо имеет необходимость с конроллерами раз в месяц или в два на протяжении 10 лет то там могут быть свои ошибки..и не надо придираться к словам типа давненько и т.д. На то мы тут и собрались чтоб помогать друг другу исправлять ошибки... Ну да ладно дело не в этом...проехали...
Теперь конкретно по другим пунктам обвинения-

ПУНКТ 1.-Я как раз и спрашиваю.. как мне написать чтоб прерывание работало...
На счет рекомендации Microchip -Вот фрагмент программы на асемблере- работает без всяких sleep- при чем работает железобетонно!!!! проверено и в симуляторе и в железе вопреки всем рекомендациям!

list p=12f629 ; list directive to define processor
#include <p12f629.inc> ; processor specific variable definitions

errorlevel -302 ; suppress message 302 from list file

__CONFIG _CP_OFF & _CPD_OFF & _BODEN_ON & _MCLRE_OFF & _WDT_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

;***** VARIABLE DEFINITIONS
w_temp EQU 0x20 ; variable used for context saving
status_temp EQU 0x21 ; variable used for context saving
C1 EQU 0x22
C2 EQU 0x23
;************************************************* *********************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program

;************************************************* *********************
ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
clrwdt
call IMP
bcf INTCON,GPIF
clrwdt
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
;************************************************* **********************
main
;начальная инициализация
movf GPIO,f
clrwdt
movlw 0x07
movwf CMCON ;выводы GPIO - цифровые
bsf STATUS,RP0 ;выбрать банк1
movlw b'00000001';настройка вывода GPIO на ввод,остальные - на вывод
movwf TRISIO
movlw b'10000110'
movwf OPTION_REG
clrf INTCON
clrf WPU
movlw b'00000001'
movwf IOCB ;Разрешение прерываний по изменению уровня на GPIO0
bcf STATUS,RP0 ;выбрать банк0
movlw b'00000000'
movwf GPIO
movlw b'00001000'
movwf INTCON
bsf INTCON,GIE ;глобальное разрешение прерываний
clrwdt
clrf TMR0
nop
L1 nop
clrwdt
nop
goto L1
;------------------------------------------------------------

IMP
movf GPIO,f
movlw b'00010000'
movwf GPIO
clrwdt
movlw 0x08 ;
movwf C1
cyc1 clrwdt
movlw 0x08 ;
movwf C2
cyc2 clrwdt
decfsz C2,f
goto cyc2
decfsz C1,f
goto cyc1
movf GPIO,f
movlw b'00000000'
movwf GPIO
return
;------------------------------------------------------------
END ; directive 'end of program'

Теперь в микроси - вот так РАБОТАЕТ!!!!!

void interrupt()
{
if(INTCON.GPIF){
GPIO.F4=1;
Delay_us(500);
GPIO.F4=0;
INTCON.GPIF = 0 ;
}
}

void init() {
CMCON = 0x07;
TRISIO = 0b00001001;
WPU =0x00;
INTCON.GPIE = 1;
INTCON.T0IE = 0;
IOCB =0x01;
OPTION_REG = 0b10000101;
INTCON.GIE = 1;
}

void main() {
do {
init() ;
} while(1);
}



а вот так- без init в основном цикле - НЕ РАБОТАЕТ!!!

void interrupt()
{
if(INTCON.GPIF){
GPIO.F4=1;
Delay_us(500);
GPIO.F4=0;
INTCON.GPIF = 0 ;
}
}

void init() {
CMCON = 0x07;
TRISIO = 0b00001001;
WPU =0x00;
INTCON.GPIE = 1;
INTCON.T0IE = 0;
IOCB =0x01;
OPTION_REG = 0b10000101;
INTCON.GIE = 1;
}

void main() {
do {

} while(1);
}


ПУНКТ 2 - мне нужна не задержка а импульс(иногда с задержкой- но пока обойдемся без нее!!!)

ПУНКТ 3 - полностью с Вами согласен

ПУНКТ 4 - смотри подробней ПУНКТ 1

ПУНКТ 5 - В битах конфигурации MCLR отключен


P.S. Я пока не подключаю тут прерывание от таймера! [Ответ]
VRTP 11:25 21.10.2010
Вот одна ошибка,но если этот порт не пользовать,страшного нет.
movlw b'00000001';настройка вывода GPIO на ввод,остальные - на вывод

Порт 3 работает только на вход,а у тебя он настроен на выход. [Ответ]
Страница 20 из 43
« Первая < 1014151617181920 21222324252630 > Последняя »
Вверх