Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
PIC контроллеры. Программаторы и первый проект на PIC |
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
|
Опции темы |
27.07.2010, 19:17 | #512 |
Форумец
Сообщений: 387
Регистрация: 19.08.2009
Возраст: 38
Не в сети |
требуется помощь в настройке прибора ТРМ251 — программный ПИД-регулятор ОВЕН
http://www.owen.ru/catalog/72638013 |
05.08.2010, 08:26 | #513 |
Форумец
Сообщений: 8
Регистрация: 24.07.2010
Возраст: 35
Не в сети |
Пришел мне по почте 18f4550, рад , что могу начать осваивать
Почитал даташит и состряпал небольшую программку на асме, которая выводит в порт В бегущий огонек, в симуляции мплаб и в протеусе все работает превосходно, но собрал на макетке в железе, и получилось так,что результат не соответствует ожиданиям Во-первых, на выводах порта Б логическая единица почему-то 1В, и диоды горят очень блекло. Во-вторых, бегущего огонька- нет, сначала могут загореться все светодиоды, а потом выключишь-включишь питание, и горит всего один. использую внутренние синхроимпульсы. У меня предположение, что возможно это происходит из-за того , что я неправильно устанавливаю биты конфигурации для задания этих импульсов. Покажите пожалуйста как правильно записывать конфигурацию для мк и как правильно использовать внутренний синхрогенератор, потому что запутался какой регистр надо использовать osccon или osctune Код на асм: ;бегущий огонек,модель 2(с таймером_0 и прерыванием) ;порт В-активен,TMR0,внутренний генератор list p=18f4550 osccon equ 0xfd3 intcon equ 0xff2 intcon2 equ 0xff1 adcon1 equ 0xfc1 tmr0 equ 0xfd6 tmr0l equ 0xfd6 tmr0h equ 0xfd7 t0con equ 0xfd5 status equ 0xfd8 trisb equ 0xf93 portb equ 0xf81 latb equ 0xf8a org 00 goto start org 0x000008 goto interrupt org 0x12 start movlw b'0110011' movwf osccon ;конфигурация осциллятора movlw b'10100000' movwf intcon ; установка прерывания bcf intcon2,7 ; pull-up для выводов порта В(но на выводах все -равно 1В) movlw 0x00 movwf trisb ;порт Б на выход movlw 0x0f movwf adcon1 ; выводы digital movlw b'00000001' movwf latb ; зажигаю первый светодиод bcf status,0 movlw b'10000101' movwf t0con ; установка таймера clrf tmr0l ; его очистка loop nop goto loop org 0x0c interrupt rlcf latb,1 bcf intcon,2 ; очистка флага прерывания retfie end Буду признателен за помощь |
05.08.2010, 08:58 | #514 |
Форумец
|
По приведенному Вами мало чем поможешь.
Osctune Вам сейчас не нужен. Как установлены биты конфигурации? Вот это зачем? Код:
osccon equ 0xfd3 intcon equ 0xff2 intcon2 equ 0xff1 adcon1 equ 0xfc1 tmr0 equ 0xfd6 tmr0l equ 0xfd6 tmr0h equ 0xfd7 t0con equ 0xfd5 status equ 0xfd8 trisb equ 0xf93 portb equ 0xf81 latb equ 0xf8a |
05.08.2010, 09:50 | #515 |
Форумец
Сообщений: 8
Регистрация: 24.07.2010
Возраст: 35
Не в сети |
Да, читал самоучитель Корабельникова. Там обычно он так объявлял регистры. Я пробовал не объявлять, но тогда возникали ошибки. Биты конфигурации я выставляю в winpic800 при прошивке:Internal oscillator, XT used by USB, сторожевой таймер выключаю,Oscillator selection- пробовал divided 2, no-divide, cpu system clock-96MHz PLL div 6, галочка напротив USBPLL, VREGEN,ccp2mx,stvren. Писал программу сам, соблюдая некоторые принципы из самоучителя
|
05.08.2010, 11:00 | #516 | |
Форумец
|
Цитата:
Код:
#include <p18f4550.inc> Код:
CONFIG OSC = HS, WDT = OFF, LVP = OFF |
|
05.08.2010, 18:23 | #517 |
Форумец
Сообщений: 8
Регистрация: 24.07.2010
Возраст: 35
Не в сети |
Исправил:
;бегущий огонек,модель 2(с таймером_0 и прерыванием) ;порт В-активен,TMR0,внутренний генератор LIST P=18F4550 #INCLUDE P18F4550.INC __CONFIG _CONFIG1L,_PLLDIV_1_1L&_CPUDIV_OSC1_PLL2_1L&_FOSC_ INTOSC_HS_1H&_VREGEN_OFF_2L&_WDT_OFF_2H&_LVP_OFF_4 L org 00 goto start org 0x000008 goto interrupt org 0x12 start ;movlw b'0110011' ;movwf OSCCON movlw b'10100000' movwf INTCON bcf INTCON2,7 movlw 0x00 movwf TRISB movlw 0x0f movwf ADCON1 movlw b'00000001' movwf LATB bcf STATUS,0 movlw b'10000100' movwf T0CON clrf TMR0L loop nop goto loop org 0x0c interrupt rlcf LATB,1 bcf INTCON,2 retfie end Конфигурацию записал немного не так как у Вас. Прошил этим контроллер, но все по -прежнему. Неужели без кварца так и не будет работать? |
05.08.2010, 22:34 | #518 | |
Форумец
|
Цитата:
В Вашем коде все в куче: Код:
__CONFIG _CONFIG1L,_PLLDIV_1_1L&_CPUDIV_OSC1_PLL2_1L&_FOSC_ INTOSC_HS_1H&_VREGEN_OFF_2L&_WDT_OFF_2H&_LVP_OFF_4 L Код:
__CONFIG _CONFIG1H, _FOSC_INTOSC_HS_1H ;тактирование от внутреннего генератора __CONFIG _CONFIG2H, _WDT_OFF_2H ; сторожевой таймер отключен |
|
06.08.2010, 12:26 | #519 |
Форумец
Сообщений: 8
Регистрация: 24.07.2010
Возраст: 35
Не в сети |
И я еще не совсем улавливаю разницу между регистром конфигурации config1h и регистром osccon. И там, и там задается частота осциллятора и выбирается какого он типа. Зачем тогда два регистра практически с одинаковыми параметрами?
Я где- то прочитал, что обязательно к контроллеру нужно подключать внешний синхронизатор,тк без него не загрузятся конфигурационные биты, а уже потом контроллер может работать без него в случае, если выбрана внутренняя синхронизация. Это так? Просто я на макетке не подключал кварц. Код:
;бегущий огонек,модель 2(с таймером_0 и прерыванием) ;порт В-активен,TMR0,внутренний генератор LIST P=18F4550 #INCLUDE P18F4550.INC __CONFIG _CONFIG1L,_PLLDIV_1_1L&_CPUDIV_OSC1_PLL2_1L __CONFIG _CONFIG1H,_FOSC_INTOSCIO_EC_1H __CONFIG _CONFIG2L,_VREGEN_OFF_2L __CONFIG _CONFIG2H,_WDT_OFF_2H __CONFIG _CONFIG4L,_LVP_OFF_4L org 00 goto start org 0x000008 goto interrupt org 0x12 start movlw b'11100110' movwf OSCCON movlw b'10100000' movwf INTCON ;bcf INTCON2,7 movlw 0x00 movwf TRISB movlw 0x0f movwf ADCON1 movlw b'00000001' movwf LATB bcf STATUS,0 movlw b'10000100' movwf T0CON clrf TMR0L loop nop goto loop org 0x0c interrupt rlcf LATB,1 bcf INTCON,2 retfie end Последний раз редактировалось BOURNE; 06.08.2010 в 17:12. |
06.08.2010, 22:24 | #520 | |
Форумец
|
Цитата:
В config1h выбирается (в процессе работы не меняется): 1. В каком режиме будет работать первичный генератор (т.е выводы OSC1 и OSC2). 2. Кто будет тактировать ядро - переферию (модуль USB тактируется отдельно). 3. Как будет тактироваться USB. 4. Управляет частотой первичного (внешние такты или кварц) генератора, а не ВНУТРЕННЕГО. Регистр osccon - позволяет оперативно по ходу программы переключаться между доступными источниками тактирования ядра и переферии (но не USB), а также он управляет частотой ВНУТРЕННЕГО генератора INTOSC. Если не использовать USB, то все должно работать и без внешнего кварца (без внешнего кварца или внешних тактов USB работать не будет). Биты конфигурации при старте не грузятся, они устанавливаются при программировании. При включении контроллер вообще начинает работать от 32 кГц (INTRC), т.к после сброса OSCTUNE = OSCCON = 0x00, и будет работать от него до тех пор пока в OSCCON(<SCS1:SCS0>) не переключите на другой источник тактирования (первичный, внутренний или от генератора TMR1). P.S. Говорим, говорим, а вывод MCLR подтянут к питанию? Последний раз редактировалось petrd; 06.08.2010 в 23:16. |
|
07.08.2010, 09:14 | #523 |
Форумец
Сообщений: 8
Регистрация: 24.07.2010
Возраст: 35
Не в сети |
Оказалось все банально просто: я поставил слишком большое значение делителя для счетчика, поэтому возрастал промежуток между миганиями, и не дождавшись смены лампочки я выключал схему с убеждением , что она не работает. Первый светодиод-то загорался, мне бы подождать ...
Вопрос по ШИМ: если , допустим, нам нужно управлять ДПТ с помощью ШИМ, то можно ли точно установить как определенное значение duty cycle соответствует тому или иному значению скорости вращения ротора; eсли, например, необходимо получить приблизительно 10 об/сек, то как рассчитать duty cycle? Последний раз редактировалось BOURNE; 07.08.2010 в 10:10. |
08.08.2010, 21:00 | #524 |
бывший dr.ON
Сообщений: 205
Регистрация: 16.06.2010
Возраст: 41
Не в сети |
1) Есть ли тут люди пользовавшиеся dsPIC30Fхххх / PIC24HJ ( удавалось ли кому запустить встроенное АЦП на 1 MSPS)?
2) Может ли ктонибудь дать в аренду отладчик/программатор( вероятно на пару дней) для них? 3) Удавалось ли кому прошить PIC24 JDMом+WinPic800 ? P.S. а то чтото аврки совсем сильно подорожали Последний раз редактировалось pt200___dr.ON; 09.08.2010 в 16:23. |
15.08.2010, 22:24 | #526 | |
Форумец
Сообщений: 5
Регистрация: 15.08.2010
Не в сети |
помогите с отображениям температуры на 7-Segment,
Цитата:
|
|
16.08.2010, 12:28 | #529 | |
Форумец
|
Цитата:
Код:
PORTA = Column[counter]; Код:
RA4_bit; |
|
16.08.2010, 12:31 | #530 |
бывший dr.ON
Сообщений: 205
Регистрация: 16.06.2010
Возраст: 41
Не в сети |
Roma4ka, например так
Код:
PORTA = ( PORTA & ( ~( BIT1|BIT2|BIT3))) | Column[counter]; |
16.08.2010, 12:37 | #531 | |
Форумец
|
Цитата:
|
|
16.08.2010, 21:41 | #534 |
бывший dr.ON
Сообщений: 205
Регистрация: 16.06.2010
Возраст: 41
Не в сети |
|
13.09.2010, 16:20 | #535 |
Форумец
Сообщений: 82
Регистрация: 13.09.2010
Не в сети |
Здраствуйте!
1. Собрал термометр подключил к третей ноге реле,напряжение все время скачет т.е. вкл и выкл постоянно.Что я не правильно сделал. 2.Можно ли нарисовать схему как правильно подключить инфракрасный приемник. |
13.09.2010, 18:19 | #536 | |
Форумец
|
Цитата:
2. Какой приемник? Для чего? |
|
14.09.2010, 11:46 | #537 |
Форумец
Сообщений: 82
Регистрация: 13.09.2010
Не в сети |
petrd, Да я новичок глупо не ругайтесь сильно.
1.Хотелось бы собрать чтобы что нибудь вкл.с пульта управления. Т.е поставить кнопку установки где при нажатие с пульта запомниться код1 включения и код2 выключения При нажатии вкл на дисплее высветиться ВКЛ и включиться реле При нажатии выкл на дисплее высветиться ВЫКЛ и выключиться реле |
15.09.2010, 10:23 | #539 | |
Форумец
|
Цитата:
При включении реле на ЖКИ и так появляется 1. А для применения ДУ придется модифицировать программу. С ключем сначала разберитесь. |
|
15.09.2010, 11:04 | #540 |
Форумец
Сообщений: 82
Регистрация: 13.09.2010
Не в сети |
petrd, Спасибо мне уже обьяснили куда коллектор куда эмитер и куда базу.Знания растут.В итоге повесл на реле светодиод соответственно то горит,то гаснет.Теперь можно и с ДУ разбираться.Вообще PIC штука интересная.И еще интересует реализация подключения к сом порту т.е чтоб отправлял команды к примеру если светодиод не горит, в сом отправляет не горит,и реализация отпраляю команду в пик через com приходит ответ состояния светодиода.
Последний раз редактировалось Азат; 16.09.2010 в 08:06. |