Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Alarm в NIOS II
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
alexPec
Приветствую всех.
С НИОСом недавно, поэтому прошу совета. Есть system tick таймер, на его базе запускается аларм:

alt_alarm_start (&al1, 2, al_call,0) < 0) ;

Я так понял, что ф-я al_call запускается только 1 раз, после 2 system tick.
Как бы сделать чтобы моя функция запускалась периодически по таймеру: для этого примера ровно каждые 2 system tick, не вызывая при этом каждый раз функцию alt_alarm_start

Была мысль поправить HAL и вписать что-то туда, в alt_tick, но это не желательно, т.к. после изменения СОПЦ похоже все придется править заново...
vadimuzzz
из NIOS II Software Developer`s Handbook
Цитата
The callback function can reset the alarm. The return value of the registered callback
function is the number of ticks until the next call to callback. A return value of zero
indicates that the alarm should be stopped.
You can manually cancel an alarm by
calling alt_alarm_stop().

ну, и пример там же:
Код
/*Example 6–8. Using a Periodic Alarm Callback Function*/
#include <stddef.h>
#include <stdio.h>
#include "sys/alt_alarm.h"
#include "alt_types.h"
/*
* The callback function.
*/
alt_u32 my_alarm_callback (void* context)
{
/* This function is called once per second */
return alt_ticks_per_second();
}
...
/* The alt_alarm must persist for the duration of the alarm. */
static alt_alarm alarm;
...
if (alt_alarm_start (&alarm,
alt_ticks_per_second(),
my_alarm_callback,
NULL) < 0)
{
printf ("No system clock available\n");
}

обратите внимание, что должен возвращать callback
alexPec
Спасибо!!! Как-то не обратил внимание на это, щас проверю...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.