Работа с PIC12F675
|
|
radist108 |
Дата: Ср, 18.04.2012, 23:18 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
49
Замечания:
±
На сайте с 07.01.2010
Статус:
Offline
|
Подскажите, как работать с портами в PIC12F675, конфигурировать и записывать/читать в них данные. Как доджна начинаться программа для этого контроллера? Имел дело только с PIC16xxx
Да здравствует то, благодаря чему мы, несмотря ни на что…
|
|
|
|
rvstar |
Дата: Чт, 19.04.2012, 11:04 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
69
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 07.01.2010
Статус:
Offline
|
Спасибо. А как зажечь все 6 портов одновременно? У меня в протеусе только первые три зажигаются.
Да здравствует то, благодаря чему мы, несмотря ни на что…
|
|
|
|
rvstar |
Дата: Чт, 19.04.2012, 14:49 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
69
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 09.10.2007
Статус:
Offline
|
Отключите компаратор, АЦП и в слове конфигурации выберите источник тактового сигнала INTRC_OSC_NOCLKOUT. Чудес же ж не бывает!
|
|
|
|
radist108 |
Дата: Чт, 19.04.2012, 23:55 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
49
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 07.01.2010
Статус:
Offline
|
А как порт 5 переключить на вход?
Да здравствует то, благодаря чему мы, несмотря ни на что…
Сообщение отредактировал
radist108 - Пт, 20.04.2012, 23:01
|
|
|
|
radist108 |
Дата: Пт, 20.04.2012, 23:08 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
49
Замечания:
±
На сайте с 07.01.2010
Статус:
Offline
|
И помогит разобраться, почему в этой программе светодиод не зажигается при нажатии?
Да здравствует то, благодаря чему мы, несмотря ни на что…
|
|
|
|
holyuser |
Дата: Сб, 21.04.2012, 09:47 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
228
Замечания:
±
На сайте с 12.12.2007
Статус:
Offline
|
Quote (radist108) А как порт 5 переключить на вход?
INPUT GPIO.5
|
|
|
|
ADMIN |
Дата: Сб, 21.04.2012, 15:02 | Сообщение # 12 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Или TRISIO.5 = 1
|
|
|
|
radist108 |
Дата: Сб, 21.04.2012, 15:23 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
49
Замечания:
±
На сайте с 07.01.2010
Статус:
Offline
|
Помогите разобраться, почему программа не работает?
Да здравствует то, благодаря чему мы, несмотря ни на что…
|
|
|
|
ADMIN |
Дата: Сб, 21.04.2012, 16:41 | Сообщение # 14 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Напиши Trisio=%00001000. То, что gpio.3 может работать только на ввод, не говорит о том, что он будет работать так при любых условиях. Нужно указать ему на это. Я запустил сейчас этот код на PBP. Моргать начинает почему-то GPIO.0, вместо GPIO.5. Давно подозреваю, что PBP тупит
|
|
|
|
holyuser |
Дата: Сб, 21.04.2012, 16:54 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
228
Замечания:
±
На сайте с 12.12.2007
Статус:
Offline
|
Quote (ADMIN) Моргать начинает почему-то GPIO.0 Так ему и положено моргать, а GPIO.5 должен повторять GPIO.3.
|
|
|
|