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

 
 
> И опять вопрос об виртуальном ЮСБ., Отваливаеться устройство
Br.Misha
сообщение May 6 2010, 22:42
Сообщение #1


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



Здравствуйте!
Сейчас деваю один девайс и меня очень удивляет его глючность. Устройство должно просто отправлять ответы на USB-HID запросы с компа.
Вот код программы:
CODE
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdio.h>
#include "main.h"
#include "usbdrv/usbdrv.c"
#include "usbdrv/requests.h"
#include "USB_Commands.h"


vuchar outputs;

vuchar currentAddress;
vuchar bytesRemaining;
vuchar rqtemp[2];
uchar temp_str[2];

unsigned char temperature[3]; // 0-Low, 1-Hight, 2-Status

char CheckButton(char pin_number)
{
vuchar pin=0;
switch(pin_number)
{
case 1: pin = 0; break;
case 2: pin = 1; break;
}
return !CheckBit(PINB, pin);
}

usbMsgLen_t usbFunctionSetup(uchar data[8])
{
usbRequest_t *rq = (void *)data;
uchar var1 = rq->wValue.bytes[0];
uchar var2 = rq->wIndex.bytes[0];

// uchar str[10];

switch(rq->bRequest)
{

case UComm_CheckButton:
usbMsgPtr[0] = CheckButton(var1);
return 1;

}
return 0;
}


int main(void)
{
DDRB = 0b00001100; PORTB = 0b00000011;
DDRC = 0b11111111; PORTC = 0b00000000;
DDRD = 0b00000000; PORTD = 0b00000000;

usbInit();
usbDeviceDisconnect();
_delay_ms(300);
usbDeviceConnect();

sei();


while(1)
{
usbPoll();

}

}



Как видите, ничего сложного, программа для ПК должна отобразить, нажата ли какая нить с двуй кнопок, запрос с компа каждые 500мс.
Ну сначала отображает вроде бы нормально но через 7-10 сек вместо состояния нажатия приходят левые числа и ещё через 3 сек устройсво дисконнектиться. Пробовал заменить usbMsgPtr[0] = CheckButton(var1); на usbMsgPtr[0] = 1; - сначала нормально приходит 1 а потом опять левые числа и отваливаеться.
Но самый большой прикол в том, что почему то после "отваливания" загораеться светодиод на PORTC2,
Подскажите плиз, в чем тут проблема.
Заранее спасибо!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 15:37
Рейтинг@Mail.ru


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