master
q3k 2012-04-06 16:43:14 +02:00
parent 58a72a958f
commit 856f83c9a9
7 changed files with 96 additions and 44 deletions

View File

@ -14,7 +14,8 @@ FUSE_H = 0xc9
AVRDUDE = avrdude -c avrisp2 -P usb -p $(DEVICE) # edit this line for your programmer
CFLAGS = -Iusbdrv -I. -DDEBUG_LEVEL=0
OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o
OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o main.o lcdiesel/lib/lcd.o
#OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o main.o
COMPILE = avr-gcc -Wall -Os -DF_CPU=$(F_CPU) $(CFLAGS) -mmcu=$(DEVICE)

1
firmware/chars.h Symbolic link
View File

@ -0,0 +1 @@
lcdiesel/include/chars.h

1
firmware/lcd.h Symbolic link
View File

@ -0,0 +1 @@
lcdiesel/include/lcd.h

1
firmware/lcdiesel Submodule

@ -0,0 +1 @@
Subproject commit 456e3088a742b443b06e45d23f708d9aeecf1917

View File

@ -23,10 +23,10 @@ publish any hardware using these IDs! This is for demonstration only!
#include <avr/interrupt.h> /* for sei() */
#include <util/delay.h> /* for _delay_ms() */
#include "lcd.h"
#include <avr/pgmspace.h> /* required by usbdrv.h */
#include "usbdrv.h"
#include "oddebug.h" /* This is also an example for using debug macros */
/* Keyboard usage values, see usb.org's HID-usage-tables document, chapter
* 10 Keyboard/Keypad Page for more codes.
@ -135,7 +135,7 @@ PROGMEM char usbHidReportDescriptor[63] = {
0xc0 // END_COLLECTION
};
#define SENDBUFFER_SIZE 128
#define SENDBUFFER_SIZE 32
char g_SendBuffer[SENDBUFFER_SIZE];
char *g_SendBufferWritePointer = g_SendBuffer;
char *g_SendBufferReadPointer = g_SendBuffer;
@ -252,7 +252,6 @@ usbMsgLen_t usbFunctionSetup(uchar data[8])
{
usbRequest_t *rq = (void *)data;
if((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS){ /* class request type */
DBG1(0x50, &rq->bRequest, 1); /* debug output: print our request */
if(rq->bRequest == USBRQ_HID_GET_REPORT){ /* wValue: ReportType (highbyte), ReportID (lowbyte) */
usbMsgPtr = (void *)&reportBuffer;
return sizeof(reportBuffer);
@ -271,20 +270,25 @@ usbMsgLen_t usbFunctionSetup(uchar data[8])
int main(void)
{
uint16_t i;
uint16_t i;
wdt_disable();
SendString("this is some pretty awesome stuff");
wdt_enable(WDTO_1S);
/* Even if you don't use the watchdog, turn it off here. On newer devices,
* the status of the watchdog (on/off, period) is PRESERVED OVER RESET!
*/
DBG1(0x00, 0, 0); /* debug output: main starts */
/* RESET status: all port bits are inputs without pull-up.
* That's the way we need D+ and D-. Therefore we don't need any
* additional hardware initialization.
*/
odDebugInit();
lcd_init(LCD_DISP_ON);
//lcd_command(LCD_FUNCTION_4BIT_2LINES );
//lcd_clrscr();
//lcd_puts("Test");
//lcd_puts_p(PSTR("Test"));
wdt_enable(WDTO_1S);
usbInit();
usbDeviceDisconnect(); /* enforce re-enumeration, do this while interrupts are disabled! */
i = 0b11111111111;
@ -294,9 +298,7 @@ uint16_t i;
}
usbDeviceConnect();
sei();
DBG1(0x01, 0, 0); /* debug output: main loop starts */
for(;;){ /* main event loop */
DBG1(0x02, 0, 0); /* debug output: main loop iterates */
wdt_reset();
usbPoll();
if(usbInterruptIsReady()){

Binary file not shown.

View File

@ -11,15 +11,15 @@
:1000A00019012905910295017503910395067508BB
:1000B000150025650507190029658100C000112478
:1000C0001FBECFE5D4E0DEBFCDBF10E0A0E6B0E0BC
:1000D000E0ECF7E002C005900D92A838B107D9F71F
:1000E00011E0A8E8B0E001C01D92A934B107E1F722
:1000F000F0D264C385CF85B7826085BF8BB780643B
:1000D000E4E9FAE002C005900D92A838B107D9F71B
:1000E00010E0A8E8B0E001C01D92A93EB107E1F719
:1000F000EED2CEC485CF85B7826085BF8BB78064D2
:100100008BBF8BE480939F008AE580939E000895C7
:100110001F93CF93DF939091AF00935097FDA1C0B1
:100120002091AC008091AB008D3209F098C09830DE
:1001300009F095C0CCE0D0E0C21BD109CD54DF4F0F
:1001400083EC809393008AE580936000109288008E
:100150008881807621F0CE0199D2282F77C09A81AC
:100150008881807621F0CE0197D2282F77C09A81AE
:1001600010929C008981882321F410929D0022E046
:1001700067C0853019F49093B00061C0863009F0F3
:100180004AC08B81813019F48AE490E01BC0823030
@ -96,33 +96,79 @@
:1005F000402F4B7E5F9100C000C002BB11BB42BBCD
:1006000071CFE0918400F091850080838091840017
:100610009091850001969093850080938400895C79
:1006200090408038910534F089EC90E090938500FB
:10063000809384000895E0918600F0918700809176
:100640008400909185008E179F0711F420E010C060
:100650002191F0938700E0938600E95CF040E03858
:10066000F10534F089EC90E0909387008093860048
:10067000822F0895CF93DF93EC0102C02196C1DF52
:1006800088818823D9F7DF91CF910895FC0180817B
:1006900080768032E1F48181813041F48AE890E013
:1006A0009093AE008093AD0088E00895823041F4CD
:1006B00082E990E09093AE008093AD0081E00895D0
:1006C0008A3029F483818093920080E0089580E04D
:1006D0000895EF92FF920F931F9382E690E0CADF96
:1006E0002EE088E190E00FB6F894A89581BD0FBE8A
:1006F00021BD01DD8C9A8FEF97E007C0A895EDEE44
:10070000F2E03197F1F700C000000197B9F78C983B
:100710007894EE24E39487E3F82E0CE217E2A89590
:10072000F7DC80919E0084FFFACF10928A0010922D
:100730008B0010928C0010928D0010928E001092FF
:100740008F00109290001092910080918900882370
:1007500029F08AE890E068E0DFDD28C0E0928900B7
:100760006ADF982F882311F181568A3110F49D5544
:1007700005C0892F81548A3120F49D5390938C00B9
:1007800018C0892F8153893010F49351F7CF9033DB
:1007900019F410938C000DC0903219F400938C0062
:1007A00008C09E3219F4F0928C0003C010928900A8
:1007B000B6CF8AE890E068E0AFDDB1CFF894FFCF24
:1007C0005AFF7468697320697320736F6D652070B8
:1007D000726574747920617765736F6D65207374C9
:0807E00075666600C900C9003E
:100620009040809734F089EC90E09093850080931F
:1006300084000895E0918600F09187008091840005
:10064000909185008E179F0711F420E00FC0219133
:10065000F0938700E0938600E95CF040B09734F0B7
:1006600089EC90E09093870080938600822F089514
:10067000CF93DF93EC0102C02196C3DF88818823EA
:10068000D9F7DF91CF910895FC0180818076803287
:10069000E1F48181813041F48AE890E09093AE00EA
:1006A0008093AD0088E00895823041F482E990E0C3
:1006B0009093AE008093AD0081E008958A3029F4D4
:1006C00083818093920080E0089580E00895EF9206
:1006D000FF920F931F9388E10FB6F89481BD11BC70
:1006E0000FBE82E690E0C4DF8CE0BFD12EE088E14F
:1006F00090E00FB6F894A89581BD0FBE21BDFBDC3C
:100700008C9A8FEF97E007C0A895EDEEF2E0319755
:10071000F1F700C000000197B9F78C987894EE24A7
:10072000E39487E3F82E0CE217E2A895F1DC8091C0
:100730009E0084FFFACF10928A0010928B001092D4
:100740008C0010928D0010928E0010928F001092EB
:1007500090001092910080918900882329F08AE806
:1007600090E068E0D9DD28C0E092890063DF982F2F
:10077000882311F181568A3110F49D5505C0892FC7
:1007800081548A3120F49D5390938C0018C0892F96
:100790008153893010F49351F7CF903319F41093AB
:1007A0008C000DC0903219F400938C0008C09E326A
:1007B00019F4F0928C0003C010928900B6CF8AE839
:1007C00090E068E0A9DDB1CF282F662311F0969A5A
:1007D00001C09698959887B38F6087BB98B3907F38
:1007E000822F82958F70892B88BB979A00C097982B
:1007F0002F70292B28BB979A00C097989F6098BBB1
:100800000895882311F0969A01C09698959A87B317
:10081000807F87BB979A00C096B3979800C0979A3D
:1008200000C086B38F709295907F9798892B08951A
:1008300080E0E7DF87FDFCCF86E090E00197F1F7ED
:1008400080E0DFDF08951F93182FF2DF812F60E033
:10085000BBDF1F9108951F93182FEADF812F61E0FE
:10086000B3DF1F910895662311F4805801C08054AE
:10087000EADF0895DDDF90E0089581E0E4DF089588
:1008800082E0E1DF08951F93182FD2DF1A3041F480
:10089000803410F080E001C080E48058D4DF03C0D1
:1008A000812F61E091DF1F9108950F931F93CF93E4
:1008B000DF938C01EB016115710511F00BC0E3DFD3
:1008C000F80181918F018823D1F709C0F801819146
:1008D0008F01D9DF2197FFEFCF3FDF07B9F7DF9116
:1008E000CF911F910F910895AF92BF92DF92EF9237
:1008F000FF920F931F93CF93DF935B017C01C0E0C6
:10090000D0E029C0F7012081822F6AE0B5D0D92E2E
:10091000822FB2D0B1D0092F822F64E6ADD0182F2C
:10092000882311F0805DAFDF002319F0802F805DF8
:1009300003C0112311F080E3A6DFDD2019F08D2D17
:10094000805D01C080E39FDF80E29DDF219682E031
:1009500090E0E80EF91ECA15DB05A0F2DF91CF91F9
:100960001F910F91FF90EF90DF90BF90AF9008958F
:10097000CF93DF93EC0101C086DFFE0121968491C5
:100980008823D1F7DF91CF910895CF92DF92FF9224
:100990000F931F93CF93DF93082F6B01EA0148DF7A
:1009A000F82E10E00770107083E0000F111F8A9579
:1009B000E1F7802F806447DF00E005C0EC0DFD1DEE
:1009C000849149DF0F5FE02FF0E0EC17FD07B4F3EF
:1009D00003C080E040DF0F5F0830D8F38F2D829591
:1009E0008F709FE0F9226F2D3EDFDF91CF911F9135
:1009F0000F91FF90DF90CF900895CF92DF92FF92FA
:100A00000F931F93CF93DF93082F6B01EA0110DF41
:100A1000F82E10E00770107093E0000F111F9A95E8
:100A2000E1F7802F80640FDF00E005C0EC0DFD1DB5
:100A3000808111DF0F5FE02FF0E0EC17FD07B4F3CA
:100A400003C080E008DF0F5F0830D8F38F2D829558
:100A50008F709FE0F9226F2D06DFDF91CF911F91FC
:100A60000F91FF90DF90CF90089587B38F6087BB81
:100A70008E9A8D9A8F9A0895991B79E004C0991FD8
:100A8000961708F0961B881F7A95C9F780950895E8
:040A9000F894FFCF08
:100A94005AFF7468697320697320736F6D652070E1
:100AA400726574747920617765736F6D65207374F2
:080AB40075666600C900C90067
:00000001FF