Hallo zusammen, ich benutze V-USB auf einem ATMega48 und habe das Teil ejtzt endlich zum laufen gebracht. Mein Fehler war das ich die Datenleitung D+ nicht auf INT0 gelegt habe sondern auf einen anderen Pin. Muss ich jetzt eine Brücke in meine Platine einlöten oder kann man den Interrupt von dem anderen Pin nehmen? Beim ATMega48 hat ja eigentlich jeder Pin einen Interrupt und D+ liegt auf PD1 (TXD/PCINT17). In der Konfigurationsdatei gibt es einen Bereich in dem man Interrupt Einstellungen vornehmen kann aber ich habe keine Ahnung was ich dort eintragen soll denn alles was ich probiert habe hat nicht funktioniert. Kann es sein das nur INT0 und INT1 anständig configuriert werden können und die anderen Interrupts nicht so viele Möglichkeiten haben? So kam es mir zumindest vor als ich im Datenblatt nach den Einstellungen gesucht habe, für INT0 und INT1 ist alles schon ausführlich erklärt und für die restlichen Interrups gibt es gerade mal zwei Register und kaum Einstellmöglichkeiten. Ps: Hier noch der Teil in dem die Eintellungen gemacht werden müssen.
1 | /* #define USB_INTR_CFG MCUCR */
|
2 | /* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
|
3 | /* #define USB_INTR_CFG_CLR 0 */
|
4 | /* #define USB_INTR_ENABLE GIMSK */
|
5 | /* #define USB_INTR_ENABLE_BIT INT0 */
|
6 | /* #define USB_INTR_PENDING GIFR */
|
7 | /* #define USB_INTR_PENDING_BIT INTF0 */
|
8 | /* #define USB_INTR_VECTOR INT0_vect */
|