ADAM-5510_рус (1031634), страница 12
Текст из файла (страница 12)
В результате пользовательимеет возможность активизации прикладной программы в требуемый моментвремениПАРАМЕТРTimeОПИСАНИЕRTC_secRTC_minRTC_hourRTC_dayRTC_weekRTC_monthRTC_yearRTC_centuryсекундыминутычасденьдень неделимесяцгодвекВозвращаемое значение:Запрашиваемое пользователем значениеПример:void main(void){printf("\n Век= %d", GetRTCtime(RTC_century) );printf("\n Год = %d", GetRTCtime(RTC_year) );printf("\n Месяц = %d", GetRTCtime(RTC_month) );printf("\n День недели = %d", GetRTCtime(RTC_week) );printf("\n День = %d", GetRTCtime(RTC_day) );printf("\n Час = %d", GetRTCtime(RTC_hour) );printf("\n Минуты= %d", GetRTCtime(RTC_min) );printf("\n Секунды= %d", GetRTCtime(RTC_sec) );}Примечание:Нет76Copyright 19992000, ProSoft, Ltd.
All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruGet_SysMemСинтаксис:unsigned char Get_SysMem(unsigned char which_byte)Описание:Чтение байта данных из специальной области статического ОЗУ (SRAM)ПАРАМЕТРwhich_byteОПИСАНИЕПорядковый номер байта в диапазонеот 0 до 112Возвращаемое значение:Байт данных из специальной области статического ОЗУ (SRAM)Пример:unsigned char SlotValue[4]void main(void){int I;/* восстановление последнего значения */for (I=0; I<4; I++)SlotValue[I] = Get_SysMem(I);}Примечание:Нет77Copyright 19992000, ProSoft, Ltd.
All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruLED_init, LED_OFF, LED_ONСинтаксис:void LED_init(void)void LED_OFF(int which_led)void LED_ON(int which_led)Описание:Управление включением и выключением светодиодного индикатора. Приэтом в начале необходимо выполнить инициализацию порта управленияиндикаторомПАРАМЕТРwhich_ledОПИСАНИЕPWRRUNCOMMВозвращаемое значение:НетПример:void main(void){LED_init()/* Прерывистое свечение индикатора СОММ */while(1){LED_ON(COMM);ADAMdelay(500);LED_OFF(COMM);}}Примечание:Нет78Copyright 19992000, ProSoft, Ltd.
All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruProgramByteСинтаксис:unsigned short ProgramByte(unsigned long ulAddress, unsigned char byte)Описание:Запись байта данных в область флэшпамятиПАРАМЕТРulAddressОПИСАНИЕЗадаваемый пользователем адрес длязаписи байта информации в диапазонеот 0х80000L до 0хBFFFFLВозвращаемое значение:TRUEУспешноезавершениеоперациизаписиОшибка (ячейка памяти уже занята,заданнедопустимыйадресилипрограммная ошибка)FALSEПример:void main(void){unsigned long FlashAddr=0x80000L;programByte(FlashAddr, 0x55);programByte(FlashAddr+1, 0xAA);}Примечание:Нет79Copyright 19992000, ProSoft, Ltd. All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruProgramSectorСинтаксис:unsigned short ProgramSector(unsigned long ulAddress, unsigned char far*SECTOR_DATA)Описание:Запись блока данных размером 32 кбайт (SECTOR_DATA[ ]) в область флэшпамятиПАРАМЕТРulAddressОПИСАНИЕЗадаваемый пользователем адрес вдиапазоне от 0х80000L до 0хB8FFFLдля записи информацииSECTOR_DATAУказатель начального адреса блокапользовательских данных в областипамяти, из которой копируются данныеВозвращаемое значение:TRUEУспешноезаписиFALSEзавершениеоперацииОшибка (область памяти уже занята,заданнедопустимыйадресилипрограммная ошибка)Пример:void main(void){int i;for (I=0; I<32768; I++)SECTOR_DATA[I] = 55;ProgramSector(0x80000L, SECTOR_DATA);}Примечание:Нет80Copyright 19992000, ProSoft, Ltd.
All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruread_backup_ramСинтаксис:unsigned char read_backup_ram(unsigned int index)Описание:Чтение значения байта по заданному адресному индексу из области ОЗУ срезервным питанием от батареи, имеющую размер 60 кбайт.
Значениеадресного индекса может принимать значение от 0 до 61439, при этомсоответствующие абсолютные значения адреса находятся в диапазоне от0х30000 до 0х3EFFFПАРАМЕТРindexОПИСАНИЕЧисло в диапазоне от 0 до 61439(общее количество 60 кбайт)Возвращаемое значение:Однобайтовое число по заданному адресному из области статического ОЗУ срезервным питаниемПример:void main(void){unsigned char data;data= read_backup_ram(500);/* операторы программы */}Примечание:Нет81Copyright 19992000, ProSoft, Ltd.
All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruread_memСинтаксис:unsigned char read_mem(int memory_segment, unsigned int i)Описание:Чтение данных из области флэшпамяти, адресуемых помощью farуказателяв диапазоне от 0х80000L до 0xBFFFFL. При этом реальный адреспредставляется в виде: АБСОЛЮТНЫЙ АДРЕС = (СЕГМЕНТ∗16+СМЕЩЕНИЕ).Например, 0x800FFL=0x80000∗16+0x00FFПАРАМЕТРmemory_segmentОПИСАНИЕЗадаваемый пользователем номерсегмента памяти в диапазоне от 0х8000до 0хBFFFiВнутрисегментноесмещениедиапазоне от 0х0000 до 0хFFFFВозвращаемое значение:Значение, хранящееся в памяти по заданному адресуПример:void main(void){unsigned char data;data=read_mem(0x8000, 0x0000);/* операторы программы */}Примечание:Нет82вCopyright 19992000, ProSoft, Ltd.
All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruRelease_AllСинтаксис:void Release_All()Описание:Освобождение всех таймерных ресурсов микроконтроллера ADAM5510ПАРАМЕТРНетОПИСАНИЕВозвращаемое значение:НетПример:void main(){int idx;/*9Инициализация80188 9*/Timer_Init();внутреннеготаймерамикропроцессора/*9 Установка значения интервала таймера равного 1 с 9*/idx=Timer_Set(1000);/*9 Проверка окончания установленного временного интервалатаймера 9*/while(tmArriveCnt[idx]==0){/*9 Другие пользовательские задачи 9*/}/*9 Сброс таймера в исходное состояние 9*/Timer_Reset(idx);/*9 Освобождение всех таймерных ресурсов 9*/Release_All()}Примечание:Нет83Copyright 19992000, ProSoft, Ltd. All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruSet_NVRAM_SizeСинтаксис:void Set_NVRAM_Size(unsigned char sector)Описание:Устанавливает размер области ОЗУ, имеющей резервное питание отбатареи.
Единица измерения – сектор, размер которого равен 4 кбайт.Максимально возможный размер 60 кбайтПАРАМЕТРsectorОПИСАНИЕЧисло секторов размером 4 кбайт,определяющих размер области ОЗУ срезервным питаниемВозвращаемое значение:НетПример:void main(){Set_NVRAM_Size(31);/*Установкаобласти ОЗУ с батарейным питанием равного 124 кбайт */}размераПримечание:Максимальный теоретически возможный размер равен 124 кбайт.
Реальныйже размер определяется конфигурацией контроллера.84Copyright 19992000, ProSoft, Ltd. All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruSetRTCtimeСинтаксис:void SetRTCtime(unsigned char Time, unsigned char data)Описание:Устанавливает текущую дату и текущее время часов реального времениПАРАМЕТРTimeОПИСАНИЕRTC_secRTC_minRTC_hourRTC_dayRTC_weekRTC_monthRTC_yearRTC_centurydataНовоезначениесекундыминутычасденьдень неделимесяцгодвекВозвращаемое значение:НетПример:void main(){unsigned char sec=0, min=0, hour=12;/* установка текущего значения времени 12:00:00 */SetRTCtime(RTC_sec, sec);SetRTCtime(RTC_min, min);SetRTCtime(RTC_hour, hour);}Примечание:Нет85Copyright 19992000, ProSoft, Ltd.
All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruSet_SysMemСинтаксис:void Set_SysMem(unsigned char which_byte, unsigned char data)Описание:Запись байта данных в специальную область статического ОЗУ, имеющуюобъем 113 байт и предназначенную для хранения важной информацииПАРАМЕТРwhich_byteОПИСАНИЕПорядковый номер байта в диапазонеот 0 до112dataСохраняемое значениеВозвращаемое значение:НетПример:unsigned char data[4]={1,2,3,4};void main(void){int I;/* Сохранение текущего значения */for(I=10; I<14; I++)Set_SysMem(I, data[1910]);}Примечание:Нет86Copyright 19992000, ProSoft, Ltd.
All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruTimer_InitСинтаксис:int Timer_Init()Описание:Инициализация внутреннего таймера микропроцессора 80188ПАРАМЕТРНетОПИСАНИЕВозвращаемое значение:0 – инициализация выполнена успешно1 – таймер уже был до этого проинициализированПримечание:Нет87Copyright 19992000, ProSoft, Ltd. All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruTimer_ResetСинтаксис:void Timer_Reset(int idx)Описание:Сброс в исходное состояние таймера, идентифицируемого целочисленнымуказателем idxПАРАМЕТРidxОПИСАНИЕТаймерный указательВозвращаемое значение:НетПримечание:Нет88Copyright 19992000, ProSoft, Ltd. All Rights Reserved.Тел.(095) 2340636, Факс: (095) 2340640, www.prosoft.ruTimer_SetСинтаксис:int Timer_Set(unsigned int msec)Описание:Запрашивает таймерные функции у микропроцессора и затем устанавливаетвременной интервал функции, который может быть задан с дискретностью 5мс.
Возвращаемое функцией целочисленное значение представляет собойидентификатор (ID) таймерной функции, если установка временногоинтервала завершена успешно. В противном случае возвращаемое значениеравно "1". Для проверки истечения заданного временного интервала можетбыть использована переменная tmArriveCnt[idx], значение которой равно 0,если отсчет времени еще продолжается, и равно 1, если временной интервалистекПАРАМЕТРmsecОПИСАНИЕУстанавливаемое значение временногоинтервала (макс.
65536)Возвращаемое значение:IntegerИдентификатор(ID)таймернойфункции при успешном завершенииустановки временного интервала1Неудачный исход операции установкивременного интервалаПримечание:Вызовы таймерных функций в ADAM5510 аналогичны вызовам таких жефункций в обычных ПЛК. Приложения, в которых применяются таймерныефункции, будут выполняться со всеменьшей эффективностью привозрастании числа одновременно используемых в программе таймерныхфункций. Для получения дополнительной информации по этому вопросуобратитесь к примеру №9, содержащемуся на дискетах утилит89Copyright 19992000, ProSoft, Ltd.