Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: И опять вопрос об виртуальном ЮСБ.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Br.Misha
Здравствуйте!
Сейчас деваю один девайс и меня очень удивляет его глючность. Устройство должно просто отправлять ответы на 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,
Подскажите плиз, в чем тут проблема.
Заранее спасибо!
Br.Misha
Думал что это уже МК(мега8) сдох, попробовал 2 новенькие - то же самое. Частота 16 МГЦ
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.