Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: ivan_fd  
Работа с PIC12F675
radist108 Дата: Ср, 18.04.2012, 23:18  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 49
Репутация: 0   ±
Замечания:   ±
На сайте с 07.01.2010

Статус: Offline

Подскажите, как работать с портами в PIC12F675, конфигурировать и записывать/читать в них данные.
Как доджна начинаться программа для этого контроллера? Имел дело только с PIC16xxx


Да здравствует то, благодаря чему мы, несмотря ни на что…
ЯНДЕКС Дата: 18.04.2012
rvstar Дата: Чт, 19.04.2012, 11:04  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 7   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

@ device pic12F675, CPD_OFF, PROTECT_Off, MCLR_OFF, PWRT_ON, WDT_Off, INTRC_OSC_NOCLKOUT

DEFINE OSCCAL_1K 1 ' Калибруем встроенный RC-генератор

CMCON = %00000111 ' Отключаем встроенный компаратор

ADCON0.0 = 0 ' Отключаем АЦП

ANSEL = 0 ' Устанавливаем все выводы как цифровые порты ввода-вывода

TRISIO = 0 ' Устанавливаем все цифровые порты на вывод, кроме GP3, который может работать только как вход

WPU = 0 ' Отключаем подтягивающие резисторы (автоматически выключаются при установке порта на вывод)

begin: ' Начало программы
radist108 Дата: Чт, 19.04.2012, 11:35  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 49
Репутация: 0   ±
Замечания:   ±
На сайте с 07.01.2010

Статус: Offline

Спасибо. А как зажечь все 6 портов одновременно? У меня в протеусе только первые три зажигаются.

Да здравствует то, благодаря чему мы, несмотря ни на что…
rvstar Дата: Чт, 19.04.2012, 14:49  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 7   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

Пять портов. GP3 при всем желании "зажечь" не получится. Только спичками)) (см. datasheet)

GPIO.0 = 1: GPIO.1 = 1: GPIO.2 = 1: GPIO.4 = 1: GPIO.5 = 1

или

GPIO = $37
radist108 Дата: Чт, 19.04.2012, 15:14  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 49
Репутация: 0   ±
Замечания:   ±
На сайте с 07.01.2010

Статус: Offline

Quote (rvstar)
GPIO.0 = 1: GPIO.1 = 1: GPIO.2 = 1: GPIO.4 = 1: GPIO.5 = 1


У меня несмотря на эти команды зажикались только три первых порта


Да здравствует то, благодаря чему мы, несмотря ни на что…
rvstar Дата: Чт, 19.04.2012, 17:33  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 7   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

Отключите компаратор, АЦП и в слове конфигурации выберите источник тактового сигнала INTRC_OSC_NOCLKOUT. Чудес же ж не бывает!
radist108 Дата: Чт, 19.04.2012, 23:55  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 49
Репутация: 0   ±
Замечания:   ±
На сайте с 07.01.2010

Статус: Offline

У меня почему то порт 3 не спабатывает на вход...

@ device pic12F675, CPD_OFF, PROTECT_Off, MCLR_OFF, PWRT_ON, WDT_Off, INTRC_OSC_NOCLKOUT
DEFINE OSCCAL_1K 1 ' Калибруем встроенный RC-генератор
CMCON = %00000111 ' Отключаем встроенный компаратор
ADCON0.0 = 0 ' Отключаем АЦП
ANSEL = 0 ' Устанавливаем все выводы как цифровые порты ввода-вывода
TRISIO = 0 ' Устанавливаем все цифровые порты на вывод, кроме GP3, который может работать только как вход
WPU = 0 ' Отключаем подтягивающие резисторы (автоматически выключаются при установке порта на вывод)

TRISIO = %000001000

begin: ' Начало программы
if gpio.3 = 0 then gpio.5=1
goto begin

end


Да здравствует то, благодаря чему мы, несмотря ни на что…
rvstar Дата: Пт, 20.04.2012, 09:09  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 7   ±
Замечания:   ±
На сайте с 09.10.2007

Статус: Offline

begin: ' Начало программы
if gpio.3 = 0 THEN
gpio.5=1
ENDIF
goto begin

end
radist108 Дата: Пт, 20.04.2012, 22:24  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 49
Репутация: 0   ±
Замечания:   ±
На сайте с 07.01.2010

Статус: Offline

А как порт 5 переключить на вход?

Да здравствует то, благодаря чему мы, несмотря ни на что…
Сообщение отредактировал radist108 - Пт, 20.04.2012, 23:01
radist108 Дата: Пт, 20.04.2012, 23:08  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 49
Репутация: 0   ±
Замечания:   ±
На сайте с 07.01.2010

Статус: Offline

И помогит разобраться, почему в этой программе светодиод не зажигается при нажатии?
Прикрепления: Test.rar (25.0 Kb)


Да здравствует то, благодаря чему мы, несмотря ни на что…
holyuser Дата: Сб, 21.04.2012, 09:47  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (radist108)
А как порт 5 переключить на вход?


INPUT GPIO.5
ЯНДЕКС Дата: 21.04.2012
ADMIN Дата: Сб, 21.04.2012, 15:02  |                                                                                                                Сообщение # 12
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Или TRISIO.5 = 1
radist108 Дата: Сб, 21.04.2012, 15:23  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 49
Репутация: 0   ±
Замечания:   ±
На сайте с 07.01.2010

Статус: Offline

Помогите разобраться, почему программа не работает?
Прикрепления: 9873588.rar (25.0 Kb)


Да здравствует то, благодаря чему мы, несмотря ни на что…
ADMIN Дата: Сб, 21.04.2012, 16:41  |                                                                                                                Сообщение # 14
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Напиши Trisio=%00001000. То, что gpio.3 может работать только на ввод, не говорит о том, что он будет работать так при любых условиях. Нужно указать ему на это. Я запустил сейчас этот код на PBP. Моргать начинает почему-то GPIO.0, вместо GPIO.5. Давно подозреваю, что PBP тупит
holyuser Дата: Сб, 21.04.2012, 16:54  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (ADMIN)
Моргать начинает почему-то GPIO.0

Так ему и положено моргать, а GPIO.5 должен повторять GPIO.3.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: