малых schedduler для pic12c508

G

gorkin

Guest
Привет братья!Мне необходимо выполнить следующий код в малых PIC12C508.
Я teste с sucessifull в других устройствах, как PIC12F629 и PIC16F627, но когда я компилируется PIC12C508 код не работают правильно, кто есть какие-либо предложения?
Спасибо и приятного дня и ночи!

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Подмигнуть" border="0" /># включить <stdlib.h>
# включить <stdio.h>

# определить ПО 0
# определить ВЫКЛ 1

# определить maxtasks 3

# uchar определить неподписанные символ

/ / Variáveis Globais
uchar задач = 0;
/ / Массив де задач terminador недействительными
недействительным (* X [maxtasks 1]) (недействительными);
/ / Ponteiro де funçăo
типа недействительным (* FP) (недействительными);
/ / protótipos
uchar FindTask (недействительным (* FP) (недействительными));
недействительным CreateTask (недействительным (* задачи) (недействительными));
недействительным DeleteTask (недействительным (* FP) (недействительными));
task0 недействительным (недействительными);
task1 недействительным (недействительными);
task2 недействительным (недействительными);
task3 недействительным (недействительными);
task4 недействительным (недействительными);
task5 недействительным (недействительными);

недействительным CreateTask (недействительным (* задачи) (недействительными))
(
uchar N;

если (! FindTask (целевых))
(
для (N = 0x00; N <maxtasks | | X [N]! = NULL; N )
(
если (X [N] == NULL)
(
X [N] = задачи;
X [N ] = NULL;
возвращение;
)
)
)
)

недействительным DeleteTask (недействительным (* задачи) (недействительными))
(
uchar N;

для (N = 0x00; N <maxtasks; N )
(
если (X [N] == задача)
(
делать
(
X [N] = X [N 0x01];
N ;
)
в то время как (X [N]! = NULL);
возвращение;
)
)
)uchar FindTask (недействительным (* FP) (недействительными))
(
uchar N;
uchar TMP;

для (N = 0x00; N <maxtasks | | X [N]! = NULL; N )
(
если (X [N] == FP)
(
TMP = 0x01;
)
еще
(
TMP = 0x00;
)
)
возвращение (TMP);
)

task0 недействительным (недействительными)
(
# АНМ
NOP
NOP
NOP
NOP
NOP
# endasm
)

task1 недействительным (недействительными)
(
# АНМ
NOP
NOP
NOP
NOP
NOP
# endasm
)

task2 недействительным (недействительными)
(
# АНМ
NOP
NOP
NOP
NOP
NOP
# endasm
)

task3 недействительным (недействительными)
(
# АНМ
NOP
NOP
NOP
NOP
NOP
# endasm
)

task4 недействительным (недействительными)
(
)

task5 недействительным (недействительными)
(
)

Основными недействительным (недействительными)
(
uchar N = 0x00;

X [N] = NULL;
CreateTask (task0);
для (;

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Подмигнуть" border="0" />(
в то время как (X [N]! = NULL)
(
X [N ]();
)
N = 0x00;
)
)

 
Вы Shure, что ваша программа вписывается в 512 btyes??

иначе. Вы correctlt программирования таймера таймер и сбросить бит??

 
Ok Элтон, я смоделировать этот код под MPLAB V6 и компилятор C HiTech ...
Когда я обобщить этот код, можно сообщить о карте памяти, файл, в ПЗУ я использую 55% и 80% оперативной памяти ...
Странно ...
Очень странно, нет?

Благодаря моим братом!
Gorkin

 

Welcome to EDABoard.com

Sponsor

Back
Top