Библиотека функций Advantech

При создании пользовательских приложений для ADAM5510 возможно использование специальной библиотеки функций. Для обеспечения наиболее эффективного использования памяти микроконтроллера библиотека функций разделена на четыре более мелкие библиотеки. Благодаря этому пользователь имеет возможность компоновать только те библиотеки, которые действительно используются в приложении, и только эти библиотеки будут включены в скомпилированный исполняемый файл. Чем меньше размер компилируемых библиотек, тем более компактным получается файл исполняемой программы.

Для ADAM5510 имеется четыре библиотеки функций, разделенных по функциональному назначению:

· Системные функции – UTILITY*.LIB

· Коммуникационные функции – COMM*.LIB

· Функции обслуживания медленных модулей ввода-вывода – LIO*.LIB

· Функции обслуживания быстродействующих модулей ввода-вывода – HIO*.LIB

Timer_Init()

Инициализация внутреннего таймера микропроцессора 80188

Синтаксис: int Timer_Init()

Описание:

Возвращаемое значение:

0 – инициализация выполнена успешно

1 – таймер уже был до этого проинициализирован

Timer_Set ()

Инициализация таймера и установка временного интервала

Синтаксис:int Timer_Set(unsigned int msec)

Описание: устанавливает временной интервал, который может быть задан с дискретностью 5 мс.

Параметр msec представляет собой устанавливаемое значение временного интервала (макс. 65536).

Возвращаемое функцией целочисленное значение представляет собой идентификатор (ID) таймерной функции, если установка временного интервала завершена успешно. В противном случае возвращаемое значение равно "-1".

 

Для проверки истечения заданного временного интервала может быть использована многомерная переменная (массив) tmArriveCnt[idx], значение которой равно 0, если отсчет времени еще продолжается, и равно 1, если временной интервал истек.

 

Примечание:

Вызовы таймерных функций в ADAM5510 аналогичны вызовам таких же функций в обычных ПЛК. Приложения, в которых применяются таймерные функции, будут выполняться со все меньшей эффективностью при возрастании числа одновременно используемых в программе таймерных функций.

 

Timer_Reset()

Сброс в исходное состояние таймера

Синтаксис: void Timer_Reset(int idx)

Описание: сброс в исходное состояние таймера, идентифицируемого целочисленным таймерным указателем idx.

Release_All()

Синтаксис:void Release_All()

Освобождение всех таймерных ресурсов микроконтроллера ADAM5510

 

Работу с файлами обеспечивают константы, типы, переменные и функции, объявленные в файле stdio.h, который должен быть включен в программу, использующую стандартный ввод/вывод или работающую с файлами.

В языке Си используется термин поток для обозначения источника или приемника данных.

При каждом пуске программы открыты три стандартных потока: stdin - стандартный ввод, stdout - стандартный вывод, stderr - стандартный приемник ошибок. По умолчанию стандартный ввод связан с клавиатурой, стандартный вывод - с экраном дисплея.

 

Программным путем может быть создан поток, связанный с файлом. Для этого в программе следует объявить переменную типа FILE *, называемую указателем файла или потоком, например,

FILE * pf;

, FILE это имя структуры, определенной в stdio.h, поля которой содержат всю необходимую информацию о файле.

 

Некоторые функции, необходимые для работы с файлами

 

Fopen()

Файл открывается посредством обращения к функции fopen():

pf = fopen (name, mode);

здесь name - указатель на строку с именем файла, mode - строка, указывающая режим работы с файлом. fopen() возвращает поток или NULL, если попытка открыть файл оказалась неудачной.

Возможны следующие режимы работы с текстовыми файлами:

"r" чтение;
"w"   файл создается для записи, старое содержимое (если оно было) уничтожается;
"a" файл открывается или создается для записи в конец файла;
"r+" исправление файла, то есть чтение и запись;
"w+" файл создается для исправления; старое содержимое уничтожается;
"a+"   файл открывается или создается для исправления и добавления в конец файла.

 

Если указатель режима дополнить буквой b, например, "rb" или "r+b", то файл считается бинарным.

 

2. gets ()

Функция получает строку символов из потока. Синтаксис: char *gets(char *s); файл, содержащий прототип функции - stdio.h

/* gets example */

#include <stdio.h>

 

void main(void)

{

char string[80];

 

printf("Input a string:");

gets(string);

printf("The string input was: %s\n", string);

 

}

 

Результат работы:

Input a string: ADAM5510

The string input was: ADAM5510

 

3. strcat()

Функция добавляет копию одной строки к другой

Синтаксис: char *strcat(char *dest, char *src);Файл, содержащий прототип: string.h Возвращаемое значение: указатель на соединенные строки Пример:#include <string.h>#include <stdio.h> void main(void){ char destination[25]; char *blank = " ", *c = "C++", *turbo = "Turbo"; strcat(destination, turbo); strcat(destination,blank); strcat(destination,c); printf("%s\n",destination);} Результат работы:Turbo С++

 

 

4. fputc ()

Функция вывода символа в поток, прототип содержится в файле stdio.h. Синтаксис: int fputc(int c, FILE * stream);Описание: Функция fputc() выводит символ с в поток stream.Возвращаемое значение в случае успеха - символ с, в случае ошибки – возвращается EOF (end of file). Пример:#include <stdio.h> int main(void) { char msg[] = "Hello world\n"; int i=0; while(msg[ i ]) { fputc(msg[ i ],stdout); i++; } return 0; }

Результат: Hello world

5. itoa() Функция преобразует целое значение в строку символов. Синтаксис: char *itoa(int value, char * string, int radix); файл, содержащий прототип функции - stdlib.h #include <stdio.h>#include <stdlib.h>int main(void) { int number = 12345; char string[25]; itoa(number,string,10); printf("Целое число: %d, строка: %s\n",number,string); return 0; } Результат:Целое число: 12345, строка: 12345

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: