G
Guest
Guest
Привет всем,
Я, имеющих проблемы с использованием PIC16F877 для включения / отключения ИК L293D чип для включения и отключения двигателя.
Я использую PORTD из PIC16F877 контролировать позволить Сцепляющий 1 L293D, но это, похоже, не контроль вообще.
Вот код:
/ / Определить компилятор ошибке.
# ifndef __CPU_16F877__
# ошибке "Эта программа специально для контроллера PIC16F877"
# ENDIF
/ / Включить необходимые файлы заголовков здесь.
# включить "io16f877.h" / / аппаратных зарегистрироваться определение файла./************************************************* ***************
Переменная timer_value проводит подсчет между двумя последовательными таймер прерывает.
Это заданное время (сек) между прерывает деленный на
срок каждого таймера кол.
Например, в этой программе, Timer1 настроен так, что каждый кол = 1,6 нами
так timer_value 60000 даст прервать течение 96 мс.
************************************************** **************/
/ / INT timer_value = 0xEA60 / / десятичное 60000./************************************************* *********************
Заявляют о функциях, которые будут использоваться в основной программе,
то естьнедействительным DelayUs (INT кол)
initialize_IO_ports недействительным (недействительными)
недействительным ждать ()
************************************************** ********************/
/ / Положить тела всех этих функций, здесь, перед ISR () и основной ().
недействительным DelayUs (INT кол)
(
INT I;
INT J;
для (i = 0; I <кол; I )
(
для (J = 0; J <5000000; J );
/ / Этот цикл имеет по 5 NOPs
И отходы 1 с нами для ПОС тактовой частоты 20MHz.
)
)недействительным ждать ()
(
Я символов;
для (i = 0; I <100; I )
(
RD1 = 0;
DelayUs (100);
)
)
initialize_IO_ports недействительным (недействительными)
(
/ / установка цифровых IO портов по требованию.
TRISB = 0xFF; / / portB в качестве вклада.
TRISD = 0x00; / / PORTD качестве продукции.
/ / очистить выходных портов в начале.
PORTD = 0x00; / / Очистить PORTD.
)недействительным Main ()
(
/ / Настройка порта D в качестве выходногов то время как (1)
(
RD1 = 1;
ждать ();
/ / Остановка
RD1 = 0;
ждать ();
)
)
Я, имеющих проблемы с использованием PIC16F877 для включения / отключения ИК L293D чип для включения и отключения двигателя.
Я использую PORTD из PIC16F877 контролировать позволить Сцепляющий 1 L293D, но это, похоже, не контроль вообще.
Вот код:
/ / Определить компилятор ошибке.
# ifndef __CPU_16F877__
# ошибке "Эта программа специально для контроллера PIC16F877"
# ENDIF
/ / Включить необходимые файлы заголовков здесь.
# включить "io16f877.h" / / аппаратных зарегистрироваться определение файла./************************************************* ***************
Переменная timer_value проводит подсчет между двумя последовательными таймер прерывает.
Это заданное время (сек) между прерывает деленный на
срок каждого таймера кол.
Например, в этой программе, Timer1 настроен так, что каждый кол = 1,6 нами
так timer_value 60000 даст прервать течение 96 мс.
************************************************** **************/
/ / INT timer_value = 0xEA60 / / десятичное 60000./************************************************* *********************
Заявляют о функциях, которые будут использоваться в основной программе,
то естьнедействительным DelayUs (INT кол)
initialize_IO_ports недействительным (недействительными)
недействительным ждать ()
************************************************** ********************/
/ / Положить тела всех этих функций, здесь, перед ISR () и основной ().
недействительным DelayUs (INT кол)
(
INT I;
INT J;
для (i = 0; I <кол; I )
(
для (J = 0; J <5000000; J );
/ / Этот цикл имеет по 5 NOPs
И отходы 1 с нами для ПОС тактовой частоты 20MHz.
)
)недействительным ждать ()
(
Я символов;
для (i = 0; I <100; I )
(
RD1 = 0;
DelayUs (100);
)
)
initialize_IO_ports недействительным (недействительными)
(
/ / установка цифровых IO портов по требованию.
TRISB = 0xFF; / / portB в качестве вклада.
TRISD = 0x00; / / PORTD качестве продукции.
/ / очистить выходных портов в начале.
PORTD = 0x00; / / Очистить PORTD.
)недействительным Main ()
(
/ / Настройка порта D в качестве выходногов то время как (1)
(
RD1 = 1;
ждать ();
/ / Остановка
RD1 = 0;
ждать ();
)
)