read_image_and_transmit() – функция чтения полного изображения отпечатка пальца с последующей передачей его в сеть.
reset_FPC1010() – функция для аппаратного сброса датчика в исходное состояние.
wait_button() – функция ожидания нажатия на кнопку SW2. Необходима для запуска программы управления.
pause(int32 p) – функция позволяющая организовать задержку в p-ое число тактов. При рабочей частоте микроконтроллера 25 МГц задержка в один такт соответствует паузе в 40 нс.
SS_enable() – функция подачи низкого уровня сигнала управления на вход SS датчика FPC1010.
SS_disable() – функция подачи высокого уровня сигнала управления на вход SS датчика FPC1010.
8.2 Алгоритмы используемых функций
Алгоритмы разработанных функций изображены на рисунках 8.1-8.17. На алгоритмах даны необходимые пояснения, кроме тех случаев, когда назначение блока явно прописано внутри него. Необходимо заметить, что установка регистров SPI (рисунки 8.1, 8.2) производится в соответствии с их расшифровкой (п. 5.1).
Запись в блоке начала каждого алгоритма соответствует названию функции записанной в программе. Для вызова какой-либо функции необходимо прописать ее название в программе и указать в скобках, если требуется, параметры ее выполнения. Так, например, запись wait_button(); будет означать, что программа перешла в режим ожидания нажатия на кнопку SW2. Аналогично поступают и с другими функциями.
Рисунок 8.1 – Алгоритм функции Init_SPI_Master
Рисунок 8.2 - Алгоритм функции SPI_disable
Рисунок 8.3 - Алгоритм функции SPI_transmit_empty
Рисунок 8.4 - Алгоритм функции SPI_recieve_wait
Рисунок 8.5 - Алгоритм функции Init_our_udp
Рисунок 8.6 - Алгоритм функции Send_our_udp
Рисунок 8.7 - Алгоритм функции Receive_packet
Рисунок 8.8 - Алгоритм функции tx_data_SPI
Рисунок 8.9 - Алгоритм функции Rx_data_SPI
Рисунок 8.10 - Алгоритм функции Read_row_image
Рисунок 8.11 - Алгоритм функции Read_image_and_transmit
Рисунок 8.12 - Алгоритм функции Main
Рисунок 8.13 - Алгоритм функции Wait_Button
Рисунок 8.14 - Алгоритм функции SS_enable
Рисунок 8.15 - Алгоритм функции SS_disable
Рисунок 8.16 - Алгоритм функции Reset_FPC1010
Рисунок 8.17 – Алгоритм функции Init_FPC1010
8.3 Реализация алгоритмов на языке Си ++
Функция инициализации порта SPI в режим ведомого (рисунок 8.1). Выполняется путем заполнения регистров SPICR1 и SPIBR.
Листинг 8.1
void init_SPI_master(void){
SPICR1 = 0x50; // SPI_Master enable 52
// CPOL=0 активный уровень синхронизации - высокий
// CPHA=0 нечетные фронты активные
// LSBFE=0 передача данных со старшего бита MSB SPIBR = 0x02 // установка частоты передачи
}
Функция отключения порта SPI (рисунок 8.2). Производится с помощью регистра SPICR1. Как только порт отключается его выводы можно использовать под пользовательский порт ввода/вывода
Листинг 8.2
void SPI_disable(void){
SPICR1 = 0x00; // SPI disable
}
Функция ожидания разрешения на передачу (рисунок 8.3). Суть функции не разрешать запись в регистр передачи SPIDR, пока предыдущие данные полностью не отправятся, и флаг SPTEF не станет равным единице. Как только происходит считывания этого флага, происходит его обнуление, после этого в SPIDR разрешена запись данных.
Листинг 8.3
void SPI_transmit_empty(void){
while (SPISR_SPTEF==0) {} // передача не будет разрешена пока
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.