Line 42... |
Line 42... |
42 |
#include <avr/pgmspace.h> |
42 |
#include <avr/pgmspace.h> |
43 |
#include <avr/wdt.h> |
43 |
#include <avr/wdt.h> |
44 |
|
44 |
|
45 |
#include <util/delay.h> |
45 |
#include <util/delay.h> |
46 |
|
46 |
|
47 |
#ifndef USBTINY |
- |
|
48 |
// use avrusb library |
- |
|
49 |
#include "usbdrv.h" |
- |
|
50 |
#include "oddebug.h" |
47 |
#include "config.h" |
51 |
#else |
- |
|
52 |
// use usbtiny library |
- |
|
53 |
#include "usb.h" |
- |
|
54 |
#include "usbtiny.h" |
- |
|
55 |
typedef byte_t uchar; |
- |
|
56 |
|
- |
|
57 |
#if! defined (__AVR_ATtiny45__) |
- |
|
58 |
#define USBDDR DDRC |
- |
|
59 |
#define USB_CFG_IOPORT PORTC |
- |
|
60 |
#else |
- |
|
61 |
#define USBDDR DDRB |
- |
|
62 |
#define USB_CFG_IOPORT PORTB |
- |
|
63 |
#endif |
- |
|
64 |
|
48 |
|
65 |
#define USB_CFG_DMINUS_BIT USBTINY_DMINUS |
49 |
// Include USB library (AVRUSB or USBTINY) |
66 |
#define USB_CFG_DPLUS_BIT USBTINY_DPLUS |
50 |
// ------------------- |
67 |
|
51 |
|
- |
|
52 |
#ifndef USBTINY |
- |
|
53 |
// use avrusb library |
- |
|
54 |
#include "usbdrv.h" |
- |
|
55 |
#include "oddebug.h" |
- |
|
56 |
#else |
- |
|
57 |
// use usbtiny library |
- |
|
58 |
#include "usb.h" |
- |
|
59 |
#include "usbtiny.h" |
- |
|
60 |
typedef byte_t uchar; |
68 |
#define usbInit() usb_init() |
61 |
#define usbInit() usb_init() |
69 |
#define usbPoll() usb_poll() |
62 |
#define usbPoll() usb_poll() |
70 |
#endif |
63 |
#endif |
71 |
|
64 |
|
72 |
#define ENABLE_SCL_EXPAND |
- |
|
73 |
|
- |
|
74 |
/* commands from USB, must e.g. match command ids in kernel driver */ |
65 |
/* commands from USB, must e.g. match command ids in kernel driver */ |
75 |
#define CMD_ECHO 0 |
66 |
#define CMD_ECHO 0 |
76 |
#define CMD_GET_FUNC 1 |
67 |
#define CMD_GET_FUNC 1 |
77 |
#define CMD_SET_DELAY 2 |
68 |
#define CMD_SET_DELAY 2 |
78 |
#define CMD_GET_STATUS 3 |
69 |
#define CMD_GET_STATUS 3 |
Line 551... |
Line 542... |
551 |
#ifdef DEBUG |
542 |
#ifdef DEBUG |
552 |
i2c_scan(); |
543 |
i2c_scan(); |
553 |
#endif |
544 |
#endif |
554 |
|
545 |
|
555 |
/* clear usb ports */ |
546 |
/* clear usb ports */ |
556 |
USB_CFG_IOPORT &= (uchar)~((1<<USB_CFG_DMINUS_BIT)|(1<<USB_CFG_DPLUS_BIT)); |
547 |
PORT(CONFIG_USB_PORT) &= (uchar)~((1<<CONFIG_USB_DMINUS)|(1<<CONFIG_USB_DPLUS)); |
557 |
|
548 |
|
558 |
/* make usb data lines outputs */ |
549 |
/* make usb data lines outputs */ |
559 |
USBDDR |= ((1<<USB_CFG_DMINUS_BIT)|(1<<USB_CFG_DPLUS_BIT)); |
550 |
DDR(CONFIG_USB_PORT) |= ((1<<CONFIG_USB_DMINUS)|(1<<CONFIG_USB_DPLUS)); |
560 |
|
551 |
|
561 |
/* USB Reset by device only required on Watchdog Reset */ |
552 |
/* USB Reset by device only required on Watchdog Reset */ |
562 |
_delay_loop_2(40000); // 10ms |
553 |
_delay_loop_2(40000); // 10ms |
563 |
|
554 |
|
564 |
/* make usb data lines inputs */ |
555 |
/* make usb data lines inputs */ |
565 |
USBDDR &= ~((1<<USB_CFG_DMINUS_BIT)|(1<<USB_CFG_DPLUS_BIT)); |
556 |
DDR(CONFIG_USB_PORT) &= ~((1<<CONFIG_USB_DMINUS)|(1<<CONFIG_USB_DPLUS)); |
566 |
|
557 |
|
567 |
usbInit(); |
558 |
usbInit(); |
568 |
|
559 |
|
569 |
sei(); |
560 |
sei(); |
570 |
for(;;) { /* main event loop */ |
561 |
for(;;) { /* main event loop */ |