реклама на сайте
подробности

 
 
> Не работает os_wait для RTX-166 Tiny (Keil)
IvanObs
сообщение May 26 2011, 13:18
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 26-05-11
Пользователь №: 65 286



Доброго времени суток! Не работает os_wait для RTX-166 Tiny (Keil).

Задача:
- мигать диодом

Код
#include <reg166.h>                  // special function registers 80C166
#include <rtx166t.h>                 // RTX-166 tiny functions & defines

#define BLINKING  0                   // task number of task:  blinking

sbit  vd = P2^1;                         // I/O Pin:  vd    lamp output

/******************************************************************************/
//                              Task 0 'blinking'
/******************************************************************************/
void blinking (void) _task_ BLINKING  {        // blink vd
  DP2 = 0xFFFF;                                          // data direction register
  vd = 0;                                                    // all lights off
  while (1)  {                                              // endless loop

    vd = 1;                                                 // vd light on
    os_wait (K_TMO, 300, 0);                       // wait for timeout: 300 ticks
    vd = 0;                                                 // vd light off
    os_wait (K_TMO, 300, 0);                       // wait for timeout: 300 ticks
  }

}


Причём:
- в дебагере работает, а на железе - нет
- сам hex-файл загружается нормально.

То что грузиться нормально, проверил так:
- сначала загрузил этот код:
Код
#include <reg166.h>                  // special function registers 80C166
#include <rtx166t.h>                 // RTX-166 tiny functions & defines

#define BLINKING  0                   // task number of task:  blinking

sbit  vd = P2^1;                         // I/O Pin:  vd    lamp output

/******************************************************************************/
//                              Task 0 'blinking'
/******************************************************************************/
void blinking (void) _task_ BLINKING  {        // blink vd
  DP2 = 0xFFFF;                                          // data direction register
  vd = 0;                                                    // all lights off
  while (1)  {                                              // endless loop
  }

}


Диод не загорелся.

- потом загрузил этот код:
Код
#include <reg166.h>                  // special function registers 80C166
#include <rtx166t.h>                 // RTX-166 tiny functions & defines

#define BLINKING  0                   // task number of task:  blinking

sbit  vd = P2^1;                         // I/O Pin:  vd    lamp output

/******************************************************************************/
//                              Task 0 'blinking'
/******************************************************************************/
void blinking (void) _task_ BLINKING  {       // blink vd
  DP2 = 0xFFFF;                                         // data direction register
  vd = 1;                                                   // vd light on
  while (1)  {                                             // endless loop
  }

}


Диод загорелся.

А мигать не получается

Использовал Startup по умолчанию.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 00:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016