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

 
 
> и опять вопрос об драйвере obdev, AVR - CDC
Br.Misha
сообщение Aug 30 2009, 19:21
Сообщение #1


Местный
***

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



Здраствуйте!
Вобщем хочу сделать девайс который будет подключаться к ЮСБ и распознаваться как ещё один СОМ порт.
Всякие дополнительные микрухи использовать не хочу поэтому хочу сделать на софтовом юсб от известного всем obdev.
На сайте http://www.recursion.jp/avrcdc/ нашел пример AVR - CDC, только вот я вообще нифига не могу понять где там ф-ция для отправки и ф-ция для приема данных с компа.
Может у кого нить есть небольшой примерчик где просто в бесконечном цыкле передаеться байт или массив на комп или пример, где можна получить принятый байт с компа и загрузить его в переменную(как например в случае обычного юарта ISR(UART_RXC_vect){peremennaia = UDR;}) ? ОЧЕНЬ ПРОШУ, ПАМАГИТЕ!

Заранее БАЛЬШОЯ СПАСИБА!!!!!!!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Goodefine
сообщение Aug 31 2009, 06:41
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Нужно немного изменить функцию (файл main.c) usbFunctionWriteOut:
Код
void usbFunctionWriteOut( uchar *data, uchar len ) //---Функция изменена ---//
{
         h2d = *data;
        usbDisableAllRequests();
  
  }

Пример main:
CODE

int main(void)
{
// wdt_enable(WDTO_1S);
odDebugInit();
hardwareInit();
usbInit();
intr3Status = 0;
sei();

for(;;){ /* main event loop */

wdt_reset();
usbPoll();

/* host -> device (пример приема и обработки сообщений) */
if( usbAllRequestsAreDisabled() && 1 /*или флаг*/) {

/*
switch (h2d){ //Пример управления устройством со стороны ПК

case '1': PORTB=1;
break;

case '2': PORTB=0;
break;

} */

usbEnableAllRequests();
}

/* device -> host */ // Передача массива в виртуальный COM
if( usbInterruptIsReady() && flag_sucess_buffer /*флаг передачи*/){
static uchar c;
static uchar k;

for (k=0;k<REPORT_BUFFER_SIZE;k++) {

(usbInterruptIsReady())? c = report_buffer[k], usbSetInterrupt(&c, 1): k--;

wdt_reset();
usbPoll();
if( usbAllRequestsAreDisabled()) usbEnableAllRequests();
}

flag_sucess_buffer=0;
}

#if USB_CFG_HAVE_INTRIN_ENDPOINT3
/* We need to report rx and tx carrier after open attempt */
if(intr3Status != 0 && usbInterruptIsReady3()){
static uchar serialStateNotification[10] = {0xa1, 0x20, 0, 0, 0, 0, 2, 0, 3, 0};

if(intr3Status == 2){
usbSetInterrupt3(serialStateNotification, 8);
}else{
usbSetInterrupt3(serialStateNotification+8, 2);
}
intr3Status--;
}
#endif
}
return 0;
}

Прежде чем передавать, необходимо что то положить в буфер и выставить флаг flag_sucess_buffer...


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Br.Misha   и опять вопрос об драйвере obdev   Aug 30 2009, 19:21
- - Br.Misha   еси можете, пожалуйста, кинте полностью проэкт. Ес...   Aug 31 2009, 07:46
- - Goodefine   Цитата(Br.Misha @ Aug 31 2009, 10:46) ......   Aug 31 2009, 10:01
- - Br.Misha   вот http://upwap.ru/540686 сделал всё как вы сказа...   Aug 31 2009, 14:30
- - Goodefine   Я делал под более старую версию проекта. Сейчас по...   Aug 31 2009, 15:24
- - Br.Misha   Исправил только настройки юарта и в usbconfig.h вы...   Aug 31 2009, 20:51
- - Goodefine   Цитата(Br.Misha @ Aug 31 2009, 23:51) Исп...   Aug 31 2009, 21:00
- - Br.Misha   Потому что к юсб у мня прицеплена мега8 а в Вашем ...   Aug 31 2009, 21:43
- - Goodefine   А зачем ноги переопределять? Оставьте их в покое. ...   Aug 31 2009, 21:54
- - Br.Misha   Goodefine, еси я тя сильно задолбал то сорри, прос...   Sep 1 2009, 13:36
- - Pyku_He_oTTyda   Frequency: 16000000. нажал ОК. нада написать UBRRL...   Sep 1 2009, 13:42
- - Br.Misha   гы...... а эт почему?   Sep 1 2009, 14:27
- - Goodefine   Цитата(Br.Misha @ Sep 1 2009, 16:36) ... ...   Sep 1 2009, 15:19
- - Br.Misha   к сожалению кварца 12Мгц у меня нету и в магазине ...   Sep 1 2009, 19:47
|- - =GM=   Цитата(Br.Misha @ Sep 1 2009, 18:47) к со...   Sep 2 2009, 14:44
- - Br.Misha   точно, в юсбдрайвере была закоментирована строка #...   Sep 2 2009, 19:35
- - Br.Misha   Я откопал кварц 12 МГц, впаял, настроил компил на ...   Sep 4 2009, 14:55
- - Goodefine   Связь между uart-ами должна быть физическая - соот...   Sep 4 2009, 19:16
- - acorn   я тему всю не читал, но разве CDC-драйвер способен...   Sep 4 2009, 19:41
- - Goodefine   Один порт - аппаратный. Второй виртуальный, так чт...   Sep 4 2009, 19:47
- - Br.Misha   >Связь между uart-ами должна быть физическая - ...   Sep 4 2009, 20:34
- - Goodefine   Для начала, просто без переделок кода добейтесь ра...   Sep 4 2009, 21:01
- - Br.Misha   Но как это сделать еси при правильном подключении ...   Sep 4 2009, 21:38
- - Goodefine   Взял сегодня сам, вышеприведенный проект для тини2...   Sep 5 2009, 11:14
- - Br.Misha   Вобщем открыл я ваш проект, там были закоментирова...   Sep 5 2009, 14:38
- - Goodefine   Цитата(Br.Misha @ Sep 5 2009, 17:38) Вобщ...   Sep 5 2009, 15:43
- - Br.Misha   Блин, точно, я как то лохонулся..... сделал как вы...   Sep 5 2009, 17:59


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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 17:02
Рейтинг@Mail.ru


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