Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Инструментарий

Инструментарий Тестеры, паяльники, осциллографы, программаторы, IDE.

Ответ
 
Опции темы Опции просмотра
Старый 09.10.2009, 10:42   #76
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от gromovi Посмотреть сообщение
ну нифига непонять на что жалуется
Пoпробуй установить через инсталляционный файл: http://wiki.pic24.ru/lib/exe/fetch.p...tool_setup.rar
Что за Виндоус такой красивый? (Инсталляционый может не пойти под Windows 7)

Цитата:
ну нифига непонять на что жалуется
Вопрос насчет этого сообщения компилятора задают чуть ли не каждый день. Читай внимательно про требования к проекту в документации: ты не добавил файл osa.c в проект

Последний раз редактировалось tester; 09.10.2009 в 10:55. Причина: памарка
tester вне форума   Ответить с цитированием
Старый 09.10.2009, 14:52   #77
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

http://wiki.pic24.ru/lib/exe/fetch.p...tool_setup.rar
помогло, в 7-ке хороший эмулятор ХР.
gromovi вне форума   Ответить с цитированием
Старый 10.10.2009, 22:04   #78
hammer
Senior Member
 
Аватар для hammer
 
Регистрация: 28.03.2007
Адрес: Almaty
Возраст: 33
Сообщений: 365
Вес репутации: 194/47
hammer has a spectacular aura abouthammer has a spectacular aura about
По умолчанию Re: Вопросы по OSA

Я тут решил идейку подкинуть для применения OSA =) Сервоконтроллер на несколько серв с приемом данных по уарт Контроллер должен генерить на ножках импульсы шириной от 600мкс до 2400мкс с периодом 20мс. Шаг - чем меньше - тем лучше (ну deadtime у обычных серв где-то 5мкс) И еще успевать данные принимать... Я на асме написал (кучеряво, правда), вот, хотелось бы поглядеть, как это будет на ОСРВ в исполнении профессионала
__________________
Бывает, проснешься как птица –
Крылатой пружиной на взводе.
И хочется жить и трудиться!..
Но к завтраку это проходит...
hammer вне форума   Ответить с цитированием
Старый 10.10.2009, 22:44   #79
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от hammer Посмотреть сообщение
Я тут решил идейку подкинуть для применения OSA =) Сервоконтроллер на несколько серв с приемом данных по уарт Контроллер должен генерить на ножках импульсы шириной от 600мкс до 2400мкс с периодом 20мс. Шаг - чем меньше - тем лучше (ну deadtime у обычных серв где-то 5мкс) И еще успевать данные принимать... Я на асме написал (кучеряво, правда), вот, хотелось бы поглядеть, как это будет на ОСРВ в исполнении профессионала
Такая поделка без самой железки не очень интересна. И вообще, в данном случае использование ОС немного неоправданно, разве что только разделить разборку данных от УАРТ (которые нужно принимать в прерывании) и формирование целеуказаний для генератора импульсов (который также будет в прерывании, т.к. средствами кооперативной ОС задержки с точностью 5 мкс не получатся).

Но я могу тебе помочь с переносом программы под OSA, если она тебе нужна.
tester вне форума   Ответить с цитированием
Старый 10.10.2009, 22:48   #80
VaBo
Senior Member
 
Регистрация: 25.02.2007
Адрес: Северодвинск
Сообщений: 1,511
Вес репутации: 737/66
VaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to behold
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от hammer Посмотреть сообщение
... вот, хотелось бы поглядеть, как это будет на ОСРВ ...
Для одного таймера, вообще-то, задачка. Алгоритм продумать только, чтоб по-красивше было...
VaBo вне форума   Ответить с цитированием
Старый 10.10.2009, 22:52   #81
hammer
Senior Member
 
Аватар для hammer
 
Регистрация: 28.03.2007
Адрес: Almaty
Возраст: 33
Сообщений: 365
Вес репутации: 194/47
hammer has a spectacular aura abouthammer has a spectacular aura about
По умолчанию Re: Вопросы по OSA

нужна, конечно =) Вот разберусь с хайтеками - перепишу.
__________________
Бывает, проснешься как птица –
Крылатой пружиной на взводе.
И хочется жить и трудиться!..
Но к завтраку это проходит...
hammer вне форума   Ответить с цитированием
Старый 10.10.2009, 22:54   #82
hammer
Senior Member
 
Аватар для hammer
 
Регистрация: 28.03.2007
Адрес: Almaty
Возраст: 33
Сообщений: 365
Вес репутации: 194/47
hammer has a spectacular aura abouthammer has a spectacular aura about
По умолчанию Re: Вопросы по OSA

На одном таймере тяжеловато написать... Там минимум 600мкс всегда надо отсчитывать, а потом идти с шагом по 5-10 мкс. А еще период в 20мс. У меня красиво не получилось. Таймер считает только по 20мс, а там я уже программные задержки леплю, для каждой сервы по очереди. В 20 мс укладывается =)
__________________
Бывает, проснешься как птица –
Крылатой пружиной на взводе.
И хочется жить и трудиться!..
Но к завтраку это проходит...
hammer вне форума   Ответить с цитированием
Старый 10.10.2009, 23:03   #83
VaBo
Senior Member
 
Регистрация: 25.02.2007
Адрес: Северодвинск
Сообщений: 1,511
Вес репутации: 737/66
VaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to beholdVaBo is a splendid one to behold
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от hammer Посмотреть сообщение
На одном таймере тяжеловато написать... Там минимум 600мкс всегда надо отсчитывать, а потом идти с шагом по 5-10 мкс. А еще период в 20мс. У меня красиво не получилось. Таймер считает только по 20мс, а там я уже программные задержки леплю, для каждой сервы по очереди. В 20 мс укладывается =)
Хмм, у тебя 17 мс свободного времени. Пусть будет 8 выходов (ну или "серв"), не спеша высчитай за это время все константы для загрузки в 16-битный таймер и данные для вывода в порт, затем по прерыванию перегружаешь таймер и выводишь в порт очередное значение. Если компаре использовать, вообще красота получится.
VaBo вне форума   Ответить с цитированием
Старый 12.10.2009, 18:41   #84
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

вопрос глуп, но все же
OS_Delay(0);????
такое может быть
gromovi вне форума   Ответить с цитированием
Старый 12.10.2009, 18:45   #85
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от gromovi Посмотреть сообщение
вопрос глуп, но все же
OS_Delay(0);????
такое может быть
Урок 3. Задержки.
tester вне форума   Ответить с цитированием
Старый 12.10.2009, 19:31   #86
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
когда я его смотрел и возникла эта глупость. по логике вещей эта строка просто не будет учитыватся. Я правильно понимаю?
gromovi вне форума   Ответить с цитированием
Старый 12.10.2009, 20:16   #87
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от gromovi Посмотреть сообщение
когда я его смотрел и возникла эта глупость. по логике вещей эта строка просто не будет учитыватся. Я правильно понимаю?
Читай внимательнее, я ведь ссылку прямо на нужный раздел в уроке дал:
Цитата:
* Вызов OS_Delay(0) функционально эквивалентен OS_Yield().
Т.е. произойдет безусловная передача управления планировщику.

В противном случае задача вида:
Код:
void Task (void)
{
    for (;;) 
    {
        OS_Delay(0);
    }
}
просто вешала бы программу, в то время как в документации сказано, что OS_Delay всегда передает управление планировщику.
tester вне форума   Ответить с цитированием
Старый 31.10.2009, 23:18   #88
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

подскажите уважаемые хоть "в какую сторону рыть"
osa ругается:
Код:
>>> Warning 226 "D:\mplabproekt\reobas.c" Line 223(1,1): Function never called  Task_menu SCR=12842
>>> Warning 226 "D:\mplabproekt\reobas.c" Line 223(1,1): Function never called  Task_menu SCR=12842
Код:
#include <reobas.h>
#include <symvol.h>
#include <STRING.H>
#include <osa.h>
#use delay(clock=20000000)
#define LCD_BUS_ADDRESS           0b01111000
#define LCD_COMMAND_DEF_PAGE      0b00000001
#define LCD_SETTINGS_PAGE         0b00001110
#define LCD_HVGEN_PAGE            0b00001101
#define LCD_SFEATURE_PAGE         0b00001011
#define LCD_FUNCTION_SET          0b00010000
#define LCD_SET_BIAS_1_9          0b00010010
#define LCD_SET_MUX_1_65          0b10000100
#define LCD_DISPLAY_CONTROL       0b00000100

#byte PORTB = 0x06
#bit b_enter = PORTB.0 
#bit b_exit = PORTB.1
#bit b_left = PORTB.2 
#bit b_right = PORTB.3

unsigned int8 enter = 0;
unsigned int8 left_right = 0;
int1 setup_button = 0;

//переменные для шимa
unsigned int8 duty_1 = 10, duty_1_temp;
unsigned int8 duty_2 = 30, duty_2_temp;
unsigned int8 duty_3 = 70, duty_3_temp;
unsigned int8 duty_4 = 110, duty_4_temp;
unsigned int8 duty_5 = 160, duty_5_temp;
unsigned int8 duty_6 = 200, duty_6_temp;
unsigned int8 duty_7 = 15, duty_7_temp;
unsigned int8 duty_8 = 35, duty_8_temp;
unsigned int8 pulse = 255;
      
// обработчик прерывания по таймеру_2, 8-мь каналов шима.
#int_timer2
void timer2_isr(void)
{
if(pulse==0){
             duty_1_temp = duty_1;
             duty_2_temp = duty_2;
             duty_3_temp = duty_3;
             duty_4_temp = duty_4;
             duty_5_temp = duty_5;
             duty_6_temp = duty_6;
			 duty_7_temp = duty_7;
             duty_8_temp = duty_8;
			 pulse = 0xFF;
             }
if(duty_1_temp!=0){OUTPUT_HIGH(PIN_D0);duty_1_temp--;}
else OUTPUT_LOW(PIN_D0); 
if(duty_2_temp!=0){OUTPUT_HIGH(PIN_D1);duty_2_temp--;}
else OUTPUT_LOW(PIN_D1);		 
if(duty_3_temp!=0){OUTPUT_HIGH(PIN_D2);duty_3_temp--;}
else OUTPUT_LOW(PIN_D2);
if(duty_4_temp!=0){OUTPUT_HIGH(PIN_D3);duty_4_temp--;}
else OUTPUT_LOW(PIN_D3);
if(duty_5_temp!=0){OUTPUT_HIGH(PIN_D4);duty_5_temp--;}
else OUTPUT_LOW(PIN_D4);
if(duty_6_temp!=0){OUTPUT_HIGH(PIN_D5);duty_6_temp--;}
else OUTPUT_LOW(PIN_D5);		 
if(duty_7_temp!=0){OUTPUT_HIGH(PIN_D6);duty_7_temp--;}
else OUTPUT_LOW(PIN_D6);
if(duty_8_temp!=0){OUTPUT_HIGH(PIN_D7);duty_8_temp--;}
else OUTPUT_LOW(PIN_D7);
pulse--;
OS_Timer();		
}
#int_RB
void RB0_isr(void) 
{
delay_ms(10);
if(b_left==0){left_right++;setup_button=1;}
if(b_right==0){left_right++;setup_button=1;}
if((b_enter==0)&&(enter<0x0A)){enter++;setup_button=1;}
if((b_exit==0)&&(enter>0)){enter--;setup_button=1;}
}
void init_mk()
{
setup_comparator(NC_NC_NC_NC);
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_OFF);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_16,255,16);

enable_interrupts(INT_TIMER2);
ENABLE_INTERRUPTS(INT_RB0);
ENABLE_INTERRUPTS(INT_RB1);
ENABLE_INTERRUPTS(INT_RB2);
ENABLE_INTERRUPTS(INT_RB3);
enable_interrupts(GLOBAL);

INPUT_B();

PORT_B_PULLUPS(0xff);

}
/////////////////////////////////////////////////////////////////////
void LCD_Set_Pos ( unsigned int8 x,unsigned int8 y )//x=0..127,y=0..7
{
        i2c_start();
        i2c_write(0b01111000);
        i2c_write(0);//control byte C0=0,D/C=0;
        i2c_write(LCD_COMMAND_DEF_PAGE);
        i2c_write(0b01000000|y);//set y pos
        i2c_write(0b00100000);//set ram page 0
        i2c_write(0b10000000|x);//set x pos
        i2c_stop();
}
void LCD_Clear ( unsigned int8 byte_fill )
{
unsigned int16 x;
unsigned int8 xx;
for(xx=0; xx<8; xx++){
						LCD_Set_Pos(0,xx);
						i2c_start();              //repeat start
						i2c_write(LCD_BUS_ADDRESS);
						i2c_write(0b01000000);
						for(x=0; x<128; x++)i2c_write(byte_fill);
						}					  
i2c_stop(); 
}
void init_glcd()
{
i2c_start();
i2c_write(LCD_BUS_ADDRESS);
i2c_write(0);//control byte C0=0,D/C=0;
i2c_write(LCD_COMMAND_DEF_PAGE); //H[2:0] independent command, select function and RAM command page H[1:0]=111
i2c_write(LCD_FUNCTION_SET); //power-down control, data entry mode PD=0(power-downis off),V=0(vertical adressing)
i2c_write(LCD_SETTINGS_PAGE);//goto setting page H[1:0]=110
i2c_write(LCD_SET_BIAS_1_9); //set bias=1/9  
i2c_write(0b00000110); //display normal mode
i2c_write(LCD_SET_MUX_1_65); //set mux rare=1/65
i2c_write(LCD_COMMAND_DEF_PAGE); //H[2:0] independent command, select function and RAM command page H[1:0]=111
i2c_write(LCD_HVGEN_PAGE);//goto HV gen page H[1:0]=101
i2c_write(0b00001001);    //voltage multiplication factor=3(S[1:0]=01)
i2c_write(0b00010010);    //temperature coeficient 2 TC[2:0]=010
i2c_write(0b11100000);    //set Vlcd=12.02V(Vop[6:0]=0101000)       0b10101000
i2c_write(0b00000101);    //sel high Vlcd programming range(PRS=1),voltage multiplier on(HVE=1)
i2c_stop();
LCD_Clear(0x00);
}
void write_char(char byte_char)
{
i2c_start();              //repeat start
i2c_write(LCD_BUS_ADDRESS);
i2c_write(0b01000000);
i2c_write(byte_char);
i2c_stop();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void putc (unsigned char data,unsigned char inv)
{
if((data < 'S')&&(data >= ' ')) { 
  								 write_char(((TEXT[data-0x20][0]))^inv);
  								 write_char(((TEXT[data-0x20][1]))^inv);
  								 write_char(((TEXT[data-0x20][2]))^inv);
                                 write_char(((TEXT[data-0x20][3]))^inv);
                                 write_char(((TEXT[data-0x20][4]))^inv);
                                 write_char((0)^inv);
}
else if((data >= 'S')&&(data <= '~')){
                                     write_char(((TEXT2[data-0x20][1]))^inv);
                                     write_char(((TEXT2[data-0x20][2]))^inv);
                                     write_char(((TEXT2[data-0x20][3]))^inv);
                                     write_char(((TEXT2[data-0x20][4]))^inv);
                                     write_char(((TEXT2[data-0x20][5]))^inv);
                                     write_char((0)^inv);
                                     }
else if((data >= 'А')&&(data <= 'м')){
                                     write_char(((TEXT3[data-0x5A][2]))^inv);
                                     write_char(((TEXT3[data-0x5A][3]))^inv);
                                     write_char(((TEXT3[data-0x5A][4]))^inv);
                                     write_char(((TEXT3[data-0x5A][5]))^inv);
                                     write_char(((TEXT3[data-0x5A][6]))^inv);
                                     write_char((0)^inv);
                                     }
else if((data >= 'н')&&(data <= 'я')){
                                     write_char(((TEXT4[data-0x54][3]))^inv);
                                     write_char(((TEXT4[data-0x54][4]))^inv);
                                     write_char(((TEXT4[data-0x54][5]))^inv);
                                     write_char(((TEXT4[data-0x54][6]))^inv);
                                     write_char(((TEXT4[data-0x54][7]))^inv);
                                     write_char((0)^inv);
                                     }
}
void puts (unsigned char str[],unsigned char n,unsigned int8 x,unsigned int8 y,unsigned char inv )
{
 unsigned char a;
 LCD_Set_Pos(x,y);
 for(a=0;a<n;a++)putc(str[a],inv);
}

void Task_menu (void)
{
char menu_1[]="МЕНЮ";
char menu_2[]="ОПЦИИ ДИСПЛЕЯ";
if(setup_button==1){
					switch(enter){
								  case 0:setup_button=0;
											break;
								  case 1:LCD_Set_Pos(0,0);
											LCD_Clear(0);
												LCD_Clear(0);
													puts(menu_1,4,50,4,0);
														setup_button=0;break;
								  case 2:LCD_Set_Pos(0,0);
											LCD_Clear(0);
												puts(menu_1,4,0,7,0);
													puts(menu_2,13,0,6,0);
														setup_button=0;break;
								  }	
					}							  
}
void main()
{
init_mk();
init_glcd();
OS_Init();
OS_Task_Create(0, Task_menu);
OS_EI();
OS_Run();
}
gromovi вне форума   Ответить с цитированием
Старый 01.11.2009, 00:29   #89
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 44
Сообщений: 3,334
Вес репутации: 2341/99
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

а какой компилятор?

если сcs, то вот
vitalka вне форума   Ответить с цитированием
Старый 01.11.2009, 00:34   #90
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от vitalka Посмотреть сообщение
а какой компилятор?
ССS, уже не важно разобрался, хелп&&example рулят.

а ссылки собака не открываются, но это мой трабл, или опера потухла, либо антивирь не пускает.
gromovi вне форума   Ответить с цитированием
Старый 01.11.2009, 21:07   #91
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

OSA с битами работает? точнее в функции OS_Wait (condition) , условие может выглядеть так : (right==1)?

Код:
#byte PORTB = 0x06
#bit enter = PORTB.0 
#bit exit = PORTB.1
#bit left = PORTB.2 
#bit right = PORTB.3
Код:
if(enter==0){enter_exit++;start_button=1;OS_Wait(enter==1);}
if(exit==0){enter_exit--;start_button=1;OS_Wait(exit==1);}
if(left==0){left_right--;start_button=1;OS_Wait(left==1);}
if(right==0){left_right++;start_button=1;OS_Wait(right==1);}
или все таки придется на int1 перекручивать, так как
выражение перечислимого типа
(bool, char, int и т.д.).

причем вот так работает: OS_Wait (enter==0||exit==0||left==0||right==0);
а вот так висним: if(right==0){left_right++;start_button=1;OS_Wait(right==1);}
т.е. дело не в #bit ...

Последний раз редактировалось gromovi; 01.11.2009 в 21:25.
gromovi вне форума   Ответить с цитированием
Старый 01.11.2009, 21:46   #92
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от gromovi Посмотреть сообщение
OSA с битами работает?
...
причем вот так работает: OS_Wait (enter==0||exit==0||left==0||right==0);
а вот так висним: if(right==0){left_right++;start_button=1;OS_Wait(right==1);}
т.е. дело не в #bit ...
Работает. В твоем примере все правильно написано. Если не работает, значит - баг OSA для CCS. Можешь на мейт скинуть проект? (testerplus на mail.ru)

(Не пиши все в одну строчку, трудно же отлаживать. Эта привычка, навязанная безобразными примерами из пакета CCS, играет против тебя. Сколько времени гробишь на попытки пройти такие строки по шагам?))
tester вне форума   Ответить с цитированием
Старый 01.11.2009, 22:05   #93
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
Работает. В твоем примере все правильно написано. Если не работает, значит - баг OSA для CCS. Можешь на мейт скинуть проект? (testerplus на mail.ru)

(Не пиши все в одну строчку, трудно же отлаживать. Эта привычка, навязанная безобразными примерами из пакета CCS, играет против тебя. Сколько времени гробишь на попытки пройти такие строки по шагам?))
Код:
void Task_button(void)
{
OS_Wait (enter==0||exit==0||left==0||right==0);
OS_Delay(50 ms);
if(enter==0){enter_exit++;start_button=1;while (enter==0)delay_ms(10);}
if(exit==0){enter_exit--;start_button=1;while (exit==0)delay_ms(10);}
if(left==0){left_right--;start_button=1;while (left==0)delay_ms(10);}
if(right==0){left_right++;start_button=1;while (right==0)delay_ms(10);}
}
вот так работает, но стоит вместо while(а) воткнуть, os_delay или os_wait, то первое нажатие проходит, и вылетает на os_run где зацикливается...

насчет одной строки согласен, просто когда отлаживаешь так удобней, а когда более менее готово, или трабл какой, то код привожу в читабельный вид.
проект кину конечно.(во сказанул, сам себе противоречю)

и еще веселее
Код:
void Task_menu (void)
{
char menu_1[]="МЕНЮ";
char menu_2[]="ОПЦИИ ДИСПЛЕЯ";
OS_Wait(start_button==1);
switch(enter_exit)
{
					case 1:	LCD_Set_Pos(0,0);
							LCD_Clear(0);
							puts(menu_1,4,50,4,0);
                           	start_button=0;
							break;

					case 2:	LCD_Set_Pos(0,0);
							LCD_Clear(0);
							puts(menu_1,4,0,7,0);
							puts(menu_2,13,0,6,0);
                            start_button=0;
							break;

					default:	LCD_Set_Pos(0,0);
								LCD_Clear(0);
								start_button=0;
								break;
}						
}
OS_Wait(start_button==1) выдает на дисплей бред какой то, но если через if(start_button==1){....}
то все адекватно.
сдается мне, что я что то не включил из osы в проект, либо

Последний раз редактировалось gromovi; 01.11.2009 в 22:24.
gromovi вне форума   Ответить с цитированием
Старый 01.11.2009, 23:15   #94
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от gromovi Посмотреть сообщение
Код:
void Task_button(void)
{
OS_Wait (enter==0||exit==0||left==0||right==0);
OS_Delay(50 ms);
if(enter==0){enter_exit++;start_button=1;while (enter==0)delay_ms(10);}
if(exit==0){enter_exit--;start_button=1;while (exit==0)delay_ms(10);}
if(left==0){left_right--;start_button=1;while (left==0)delay_ms(10);}
if(right==0){left_right++;start_button=1;while (right==0)delay_ms(10);}
}
вот так работает, но стоит вместо while(а) воткнуть, os_delay или os_wait, то первое нажатие проходит, и вылетает на os_run где зацикливается...
А где вечный цикл внутри задачи? (Описано в самом начале)
tester вне форума   Ответить с цитированием
Старый 02.11.2009, 00:09   #95
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
А где вечный цикл внутри задачи? (Описано в самом начале)
если бы у меня эта ссылка открывалась, то все было бы ништяк. Пойду шаманить, надо что то делать с этим www.pic24.ru.
gromovi вне форума   Ответить с цитированием
Старый 02.11.2009, 00:13   #96
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от gromovi Посмотреть сообщение
если бы у меня эта ссылка открывалась, то все было бы ништяк. Пойду шаманить, надо что то делать с этим www.pic24.ru.
Я вот чтоимел ввиду:
Код:
void Task_button(void)
{
    for (;;)
    {
        OS_Wait (enter==0||exit==0||left==0||right==0);
        OS_Delay(50 ms);
        if(enter==0){enter_exit++;start_button=1;while (enter==0)delay_ms(10);}
        if(exit==0){enter_exit--;start_button=1;while (exit==0)delay_ms(10);}
        if(left==0){left_right--;start_button=1;while (left==0)delay_ms(10);}
        if(right==0){left_right++;start_button=1;while (right==0)delay_ms(10);}
    }
}
А насчет "сайт не открывается" - вся документация есть в папке osa\doc. Та ссылка, которую я тебе дал, это раздел "Сервисы/задачи"
tester вне форума   Ответить с цитированием
Старый 02.11.2009, 00:37   #97
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
Я вот чтоимел ввиду:
Код:
void Task_button(void)
{
    for (;;)
    {
        OS_Wait (enter==0||exit==0||left==0||right==0);
        OS_Delay(50 ms);
        if(enter==0){enter_exit++;start_button=1;while (enter==0)delay_ms(10);}
        if(exit==0){enter_exit--;start_button=1;while (exit==0)delay_ms(10);}
        if(left==0){left_right--;start_button=1;while (left==0)delay_ms(10);}
        if(right==0){left_right++;start_button=1;while (right==0)delay_ms(10);}
    }
}
А насчет "сайт не открывается" - вся документация есть в папке osa\doc. Та ссылка, которую я тебе дал, это раздел "Сервисы/задачи"
спасибо в очередной раз.
gromovi вне форума   Ответить с цитированием
Старый 03.11.2009, 21:11   #98
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

Уважаемый tester вопрос к вам, все теже кнокпи:

http://www.microchip.su/showpost.php...47&postcount=4

как лучше под osу переделать, флагами или сообщениями, проще будет наверно флагами + простота опроса периода кнопок ? Как вы думаете?
gromovi вне форума   Ответить с цитированием
Старый 03.11.2009, 21:22   #99
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от gromovi Посмотреть сообщение
Уважаемый tester вопрос к вам, все теже кнокпи:

http://www.microchip.su/showpost.php...47&postcount=4

как лучше под osу переделать, флагами или сообщениями, проще будет наверно флагами + простота опроса периода кнопок ? Как вы думаете?
(Ко мне на "ты" можно )

Не совсем понял. Ты хочешь кнопки вынести в отдельный модуль и оттуда слать сообщения или флаги? Или что-то другое имелось ввиду?
tester вне форума   Ответить с цитированием
Старый 03.11.2009, 21:46   #100
gromovi
Banned
 
Регистрация: 17.02.2009
Сообщений: 1,368
Вес репутации: 381/0
gromovi is just really nicegromovi is just really nicegromovi is just really nicegromovi is just really nice
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от tester Посмотреть сообщение
(Ко мне на "ты" можно )

Не совсем понял. Ты хочешь кнопки вынести в отдельный модуль и оттуда слать сообщения или флаги? Или что-то другое имелось ввиду?
да, имено так
gromovi вне форума   Ответить с цитированием
Ответ

Метки
osa, rtos, сторожевой таймер


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Все вопросы по MikroC shnitz Инструментарий 971 23.09.2016 13:22
Статья по RTOS OSA tester Продукция MICROCHIP 12 24.02.2009 12:04
16F690, вопросы по timer1 и встроенному 32кГц-генератору e_glu Продукция MICROCHIP 3 29.01.2009 17:14
Есть вопросы по алгоритму работы устройства на пике. 40grad Продукция MICROCHIP 9 27.10.2007 15:55
Пишу руководство по RS485 и есть вопросы pvl2000 Cетевые протоколы и технологии 2 16.04.2007 00:57


Часовой пояс GMT +3, время: 17:46.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot