Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программе на МК

Автор: mackeda
Дата сообщения: 09.08.2012 01:23
[more] [more] Есть программа написана на С для МК AT8252. Возникло пару вопросов при разборе ее реализации.

1) Зачем нужны header файлы?

#include <reg8252.h>
#include "External.h"
#include "Interrupt.h"
#include "Timer.h"
#include "Xilinx.h"
#include "Memory.h"

2) #include <reg8252.h> это что ? Как это правильно обозвать? Head file с обозначение регистров специальных функций?

3) Это глобальная переменная: extern bit IsWasInt?

4) Правильно ли написано пояснение к коду.

Функция Delay объявлена на строке 12, она принимает без знаковый целочисленный аргумент типа int и ничего не возвращает. На четырнадцатой строке объявлен цикл while, которому в качестве условия выхода указан декремент локальной переменной i.

17)    void Delay1ms(unsigned int i)
18)    {
19)     while(i--)
20)     Delay(82);
21)    }

12) void Delay(unsigned int i)
13) {    
14)     while(i--);
15)    }


5) Расчет времени выполнения функции while(i--)

Disassembler:

C:0x0344 EF MOV A,R7 ------ 1 цикл
C:0x0345 1F DEC R7 ------ 1 цикл
C:0x0346 AC06 MOV R4,0x06 ------ 1 цикл
C:0x0348 7001 JNZ C:034B ------ 2 цикла
C:0x034A 1E DEC R6 ------ 0 цикл
C:0x034B 4C ORL A,R4 ------ 1 цикл
C:0x034C 70F6 JNZ Delay(C:0344) ------ 2 цикла

8 циклов *12* 90 нс (11 МГц частота МК) * 82 = 0.708408 мс

Посмотрел на время выполнения в KeiluVision 4, результат не совпал 0,834550 мс
Как правильно рассчитать время задержки?


6) Что такое Build Target в KeiluVision 4 ?
[/more] [/more]

Страницы: 1

Предыдущая тема: Вопросы по Embarcadero RAD Studio XE3


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.