[an error occurred while processing this directive]
ещё один вариант
(«Телесистемы»: Конференция 'Микроконтроллеры и их применение')

миниатюрный аудио-видеорекордер mAVR

Отправлено Max_Fly 02 февраля 2005 г. 19:28
В ответ на: пример кода который у меня пошёл (+) отправлено Max_Fly 02 февраля 2005 г. 19:15


#include
#include
#include
#include
#include
#include
#include
#define SEC_NSEC 1000000000LL
#define mSEC_NSEC 1000000LL
float massive[10];
void *thread_code(void *param);
void main (void)
{
uint64_t timeout;

int rval;
struct sigevent event;
unsigned int i=0;
pthread_attr_t attr;
pthread_t task;
struct sched_param params;
int ret=0;
while(1)
{
for (i=0;i<10;i++)
{
massive[i]=123.456789;
}
delay(10);
pthread_attr_init (&attr);
params.sched_priority = 4;
pthread_attr_setschedparam (&attr, ¶ms);
ret = pthread_create (&task, &attr, thread_code, (void*)(&massive));
timeout = 1LL*mSEC_NSEC;
TimerTimeout (CLOCK_REALTIME, _NTO_TIMEOUT_JOIN, &event, &timeout, NULL);
rval = pthread_join (task,NULL);
if (rval)
{
pthread_detach(task);//
pthread_cancel(task);
}
else
{
pthread_detach(task);//
pthread_cancel(task);
}
}
}
void * thread_code(void *param)
{
unsigned int i=0;
static unsigned int count=0;
for (i=0;i<10;i++)
{
*((float*)param)+=*((float*)param+i);
}
count++;
if(count==10)
{
printf("res=%6.3f\n",*(float*)(param));
count=0;
}
return param;
}


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru