|
Как включить GPIO в PIC10f200 ? |
|
|
|
Jul 14 2010, 20:13
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 9-08-08
Пользователь №: 39 514

|
Контроллер - PIC10F200. Программатор - Pickit2. Среда - MPLab IDE 8.46. Пытаюсь запустить простейшую программу для PIC10f, которая включит доступные GPIO в нем. Пробовал разные компиляторы и языки: CCS, HITECH C, MPASM Assembler, все безуспешно. Что я делаю: 1. Подсоединил соответствующие выводы мк и программатора: МК | Pickit 2 (1)GP0/ICSPDAT - ICSPDAT (4) (2)VSS - GND (3) (3)GP1/ICSPCLK - ICSPCLK (5) (4)GP2/T0CKI/FOSC4 - ----- (5)VDD - Vdd (2) (6)GP3/MCLR/VPP - MCLR/Vpp (1) 2. Подключаю соответственно через USB к компьютеру программатор, запускаю среду разработки. 3. Например, в ассемблере MPASM Assembler такой код: Код include <P10F200.inc>
__CONFIG _IntRC_OSC & _WDT_OFF & _CP_OFF & _MCLRE_OFF
#define g0 GPIO,0
bsf g0;
END Ну вот из той же стихии, только включение-выключение GP3 через одну секунду, но уже в CCS C: Код #include <10F200.h>
#use fast_io(b) #use delay (clock=20000000)
void main() {
SET_TRIS_B( 0xE );
while (TRUE) { output_high(PIN_B3); delay_ms( 1000 ); output_low(PIN_B3); delay_ms( 1000 ); }
} Все прекрасно компилится, билдится. Далее отправляю в мк. 4. Проверяю напряжение на данных GP - 0 V. Что не так делаю? Где косяк? Есть ли какие-то особенные тонкости с PIC или подключением? Судя по всем введениям и примерам - на pic12, Pic18 и пр - все должно сходу работать и включаться.
|
|
|
|
|
 |
Ответов
Guest_@Ark_*
|
Jul 14 2010, 22:05
|
Guests

|
Цитата Ну так я так и делаю - говорю, что GP1 буду юзать как выход остальные входы. Именно трисом. Где я туплю? Вы лучше в свой первый ассемблерный пример добавьте команду TRIS, предварительно загрузив в W нужное значение... Цитата У него вообще нету регистра этого! Поэтому ввели TRiS. Регистр-то сам есть. Адреса у него нету. Потому, доступ к нему только через специальную команду, и только на запись.
|
|
|
|
|
Jul 14 2010, 22:50
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 9-08-08
Пользователь №: 39 514

|
Цитата(@Ark @ Jul 15 2010, 02:05)  Вы лучше в свой первый ассемблерный пример добавьте команду TRIS, предварительно загрузив в W нужное значение...
Регистр-то сам есть. Адреса у него нету. Потому, доступ к нему только через специальную команду, и только на запись. Т.к. после этого нифига не получается, видимо пора спать. Код include <P10F200.inc>
__CONFIG _IntRC_OSC & _WDT_OFF & _CP_OFF & _MCLRE_OFF
bcf GPIO, 1 bcf GPIO, 0
MOVLW 007h TRIS GPIO
END
|
|
|
|
|
Jul 15 2010, 04:30
|
Местный
  
Группа: Свой
Сообщений: 283
Регистрация: 13-06-07
Из: Челябинск
Пользователь №: 28 391

|
Цитата(DrLan @ Jul 15 2010, 04:50)  Код include <P10F200.inc> __CONFIG _IntRC_OSC & _WDT_OFF & _CP_OFF & _MCLRE_OFF bcf GPIO, 1 bcf GPIO, 0 MOVLW 007h TRIS GPIO END Пример этого кода взяли в datasheet'е "EXAMPLE 5-1:" ? Ошибка там. Не 007h надо в W заносить, а 006h (смотрите таблицу TABLE 5-2 над примером в DS) С исправленным на 006h значением все у меня скомпильнулось и работает (проверил дрыганьем ноги). PS. В include файл также полезно заглядывать, там тоже прописано GPIO - 006h.
|
|
|
|
|
Jul 15 2010, 06:05
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 9-08-08
Пользователь №: 39 514

|
Цитата(mrKirill @ Jul 15 2010, 08:30)  Пример этого кода взяли в datasheet'е "EXAMPLE 5-1:" ? Ошибка там. Не 007h надо в W заносить, а 006h (смотрите таблицу TABLE 5-2 над примером в DS)
С исправленным на 006h значением все у меня скомпильнулось и работает (проверил дрыганьем ноги).
PS. В include файл также полезно заглядывать, там тоже прописано GPIO - 006h. Так это и в даташите написано в таблице 4-1 и 5-2. Этот код тоже никакого действия не имеет у меня: Код include <P10F200.inc>
__CONFIG _MCLRE_ON & _WDT_OFF & _CP_OFF
bcf GPIO, 1 bcf GPIO, 0
MOVLW 006h TRIS GPIO
END Наверное вопрос надо по-другому ставить. Попробую вечером другой контроллер вкрутить что ли.
|
|
|
|
|
Jul 15 2010, 06:10
|
Местный
  
Группа: Свой
Сообщений: 283
Регистрация: 13-06-07
Из: Челябинск
Пользователь №: 28 391

|
Цитата(DrLan @ Jul 15 2010, 12:05)  Так это и в даташите написано в таблице 4-1 и 5-2. Да, написано, но в примере кода - ошибка. Цитата(DrLan @ Jul 15 2010, 12:05)  Этот код тоже никакого действия не имеет у меня: Конечно не будет, а что Вы хотите? Вообще с ASM как? Знакомы? Код MOVLW 006h TRIS GPIO; настроили выводы, какие на вход, какие на выход Вот сюда впишите цикл с дрыганьем ноги соответствующей, будет - дрыганье END
|
|
|
|
|
Jul 15 2010, 06:22
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 9-08-08
Пользователь №: 39 514

|
Цитата(mrKirill @ Jul 15 2010, 10:10)  Да, написано, но в примере кода - ошибка. Конечно не будет, а что Вы хотите? Вообще с ASM как? Знакомы? Код MOVLW 006h TRIS GPIO; настроили выводы, какие на вход, какие на выход Вот сюда впишите цикл с дрыганьем но ги соответствующей, будет - дрыганье END  Да мне не дрыганье, а просто high на gp1 нужен. В асме абсолютный ноль, но и так понимаю, что там цикла нет:-) Просто по этому примеру может показаться, что состояние gp1 будет 0, но оно должно быть 1.
|
|
|
|
|
Jul 15 2010, 07:07
|
Местный
  
Группа: Свой
Сообщений: 283
Регистрация: 13-06-07
Из: Челябинск
Пользователь №: 28 391

|
Цитата(DrLan @ Jul 15 2010, 12:22)  Да мне не дрыганье, а просто high на gp1 нужен. В асме абсолютный ноль, но и так понимаю, что там цикла нет:-) Просто по этому примеру может показаться, что состояние gp1 будет 0, но оно должно быть 1. Держите, на GP1=1; Код #include <P10F200.inc>
__CONFIG _IntRC_OSC & _WDT_OFF & _CP_OFF & _MCLRE_OFF
MOVLW 0x00 ;Записываем в регистр W настройку GPIO: 1=ввод, 0=выход MOVWF GPIO ;записываем содержимое регистра W в регистр GPIO TRIS GPIO;записываем содержимое регистра GPIO в TRIS, тем самым конфигурируем порт.
bsf GPIO,1;устанавливаем бит 1 порта GPIO.
END PS. 100 лет уже ASM PIC не юзал, учитывая, что еще и не знаю его толком  Для AVR и 8051 учил
|
|
|
|
Сообщений в этой теме
DrLan Как включить GPIO в PIC10f200 ? Jul 14 2010, 20:13 @Ark Такое впечатление, что в даташит на PIC10 Вы даже ... Jul 14 2010, 20:42 DrLan Цитата(@Ark @ Jul 15 2010, 00:42) Такое в... Jul 14 2010, 20:44 @Ark ЦитатаЗаглядывал, честно :-)
Читайте по новой. Сам... Jul 14 2010, 20:55 DrLan Цитата(@Ark @ Jul 15 2010, 00:55) Читайте... Jul 14 2010, 21:08 @Ark В PIC10 запись в регистр TRIS производится только ... Jul 14 2010, 21:27 xemul Если MCLREN, то GP3 должен быть притянут к Vcc (н-... Jul 14 2010, 21:34 DrLan Цитата(xemul @ Jul 15 2010, 01:34) Если M... Jul 14 2010, 21:36  xemul Цитата(DrLan @ Jul 15 2010, 01:36) Угу, с... Jul 14 2010, 21:46   DrLan Цитата(xemul @ Jul 15 2010, 01:46) GP3 мо... Jul 14 2010, 21:58       DrLan Цитата(mrKirill @ Jul 15 2010, 11:07) Дер... Jul 15 2010, 07:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|