Vladimir Smagin 1 year ago
parent
commit
1753fd79a2
86 changed files with 21284 additions and 0 deletions
  1. BIN
      firmware (Mega88-20PU & Mega48-20PU).zip
  2. 190
    0
      firmware/firmware_m48.hex
  3. 190
    0
      firmware/firmware_m88.hex
  4. BIN
      sources.zip
  5. 150
    0
      src.with_uart_input/44780.c
  6. 77
    0
      src.with_uart_input/44780.h
  7. 301
    0
      src.with_uart_input/avrcdc.c
  8. 33
    0
      src.with_uart_input/avrcdc.h
  9. BIN
      src.with_uart_input/default/44780.o
  10. 87
    0
      src.with_uart_input/default/Makefile
  11. BIN
      src.with_uart_input/default/avrcdc.o
  12. 48
    0
      src.with_uart_input/default/dep/44780.o.d
  13. 64
    0
      src.with_uart_input/default/dep/avrcdc.o.d
  14. 71
    0
      src.with_uart_input/default/dep/main.o.d
  15. 49
    0
      src.with_uart_input/default/dep/usbdrv.o.d
  16. 40
    0
      src.with_uart_input/default/dep/usbdrvasm.o.d
  17. 1
    0
      src.with_uart_input/default/linuxlcd.eep
  18. BIN
      src.with_uart_input/default/linuxlcd.elf
  19. 205
    0
      src.with_uart_input/default/linuxlcd.hex
  20. 2973
    0
      src.with_uart_input/default/linuxlcd.lss
  21. 486
    0
      src.with_uart_input/default/linuxlcd.map
  22. BIN
      src.with_uart_input/default/main.o
  23. BIN
      src.with_uart_input/default/usbdrv.o
  24. BIN
      src.with_uart_input/default/usbdrvasm.o
  25. 1
    0
      src.with_uart_input/linuxlcd.aps
  26. 1
    0
      src.with_uart_input/linuxlcd.aws
  27. 134
    0
      src.with_uart_input/main.c
  28. 308
    0
      src.with_uart_input/usbdrv/Changelog.txt
  29. 166
    0
      src.with_uart_input/usbdrv/CommercialLicense.txt
  30. 361
    0
      src.with_uart_input/usbdrv/License.txt
  31. 172
    0
      src.with_uart_input/usbdrv/Readme.txt
  32. 149
    0
      src.with_uart_input/usbdrv/USB-ID-FAQ.txt
  33. 148
    0
      src.with_uart_input/usbdrv/USB-IDs-for-free.txt
  34. 188
    0
      src.with_uart_input/usbdrv/asmcommon.inc
  35. 50
    0
      src.with_uart_input/usbdrv/oddebug.c
  36. 123
    0
      src.with_uart_input/usbdrv/oddebug.h
  37. 376
    0
      src.with_uart_input/usbdrv/usbconfig.h
  38. 625
    0
      src.with_uart_input/usbdrv/usbdrv.c
  39. 735
    0
      src.with_uart_input/usbdrv/usbdrv.h
  40. 393
    0
      src.with_uart_input/usbdrv/usbdrvasm.S
  41. 21
    0
      src.with_uart_input/usbdrv/usbdrvasm.asm
  42. 393
    0
      src.with_uart_input/usbdrv/usbdrvasm12.inc
  43. 750
    0
      src.with_uart_input/usbdrv/usbdrvasm128.inc
  44. 423
    0
      src.with_uart_input/usbdrv/usbdrvasm15.inc
  45. 346
    0
      src.with_uart_input/usbdrv/usbdrvasm16.inc
  46. 453
    0
      src.with_uart_input/usbdrv/usbdrvasm165.inc
  47. 707
    0
      src.with_uart_input/usbdrv/usbdrvasm18-crc.inc
  48. 360
    0
      src.with_uart_input/usbdrv/usbdrvasm20.inc
  49. 144
    0
      src.with_uart_input/usbdrv/usbportability.h
  50. 222
    0
      src.with_uart_input/usbuart.c
  51. 29
    0
      src.with_uart_input/usbuart.h
  52. 190
    0
      src/firmware/bin/firmware.hex
  53. 150
    0
      src/firmware/source/44780.c
  54. 77
    0
      src/firmware/source/44780.h
  55. 301
    0
      src/firmware/source/avrcdc.c
  56. 33
    0
      src/firmware/source/avrcdc.h
  57. 1
    0
      src/firmware/source/linuxlcd.aps
  58. 1
    0
      src/firmware/source/linuxlcd.aws
  59. 75
    0
      src/firmware/source/main.c
  60. 308
    0
      src/firmware/source/usbdrv/Changelog.txt
  61. 166
    0
      src/firmware/source/usbdrv/CommercialLicense.txt
  62. 361
    0
      src/firmware/source/usbdrv/License.txt
  63. 172
    0
      src/firmware/source/usbdrv/Readme.txt
  64. 149
    0
      src/firmware/source/usbdrv/USB-ID-FAQ.txt
  65. 148
    0
      src/firmware/source/usbdrv/USB-IDs-for-free.txt
  66. 188
    0
      src/firmware/source/usbdrv/asmcommon.inc
  67. 50
    0
      src/firmware/source/usbdrv/oddebug.c
  68. 123
    0
      src/firmware/source/usbdrv/oddebug.h
  69. 376
    0
      src/firmware/source/usbdrv/usbconfig.h
  70. 625
    0
      src/firmware/source/usbdrv/usbdrv.c
  71. 735
    0
      src/firmware/source/usbdrv/usbdrv.h
  72. 393
    0
      src/firmware/source/usbdrv/usbdrvasm.S
  73. 21
    0
      src/firmware/source/usbdrv/usbdrvasm.asm
  74. 393
    0
      src/firmware/source/usbdrv/usbdrvasm12.inc
  75. 750
    0
      src/firmware/source/usbdrv/usbdrvasm128.inc
  76. 423
    0
      src/firmware/source/usbdrv/usbdrvasm15.inc
  77. 346
    0
      src/firmware/source/usbdrv/usbdrvasm16.inc
  78. 453
    0
      src/firmware/source/usbdrv/usbdrvasm165.inc
  79. 707
    0
      src/firmware/source/usbdrv/usbdrvasm18-crc.inc
  80. 360
    0
      src/firmware/source/usbdrv/usbdrvasm20.inc
  81. 144
    0
      src/firmware/source/usbdrv/usbportability.h
  82. 222
    0
      src/firmware/source/usbuart.c
  83. 29
    0
      src/firmware/source/usbuart.h
  84. BIN
      src/proj/schematic.DSN
  85. BIN
      src/proj/schematic.png
  86. 71
    0
      src/win-inf/avrcdc.inf

BIN
firmware (Mega88-20PU & Mega48-20PU).zip View File


+ 190
- 0
firmware/firmware_m48.hex View File

@@ -0,0 +1,190 @@
:1000000099C096C3B2C0B1C0B0C0AFC0AEC0ADC0A1
:10001000ACC0ABC0AAC0A9C0A8C0A7C0A6C0A5C09C
:10002000A4C0A3C0A2C0A1C0A0C09FC09EC09DC0CC
:100030009CC09BC03F3F3F3F3F3F3F3F3F3F3F3F15
:100040003F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3FC0
:100050003F3F3F3F3F3F3FB53F3F3F3F3F3F3F3F3A
:100060003F3F3F3F3F3F3FA23F3F3F3F3F3F3F3F3D
:100070003F3F3F3FC661B2E5E365E4B478B8B9BA43
:10008000BBBCBD6FBEC77063BF79B6B3C4C3B7C1D5
:10009000C5E6C0C2B041A0E1E045AAA158A5A64B63
:1000A000A74D484FA8B1504354A9A34262AEA4AC97
:1000B000AFE2ABAD040309041203720065006400F3
:1000C000730068002E00720075001403530069006D
:1000D0006D0070006C0065004C004300440012018C
:1000E000100102000008C016E10500010102000134
:1000F00009024300020100801E09040000010202FF
:100100000100052400100104240202052406000158
:100110000524010301070583030800FF090401000A
:10012000020A00000007050102080000070581021D
:100130000800000011241FBECFEFD2E0DEBFCDBF0C
:1001400011E0A0E0B1E0E0ECFBE002C005900D9210
:10015000AC30B107D9F711E0ACE0B1E001C01D92BD
:10016000AC39B107E1F702D029C54ACFEF92FF922F
:100170001F93DF93CF930F92CDB7DEB78BB1836020
:100180008BB985B1886385B988B1806388B9D8D4C3
:100190007894C2D081E08CD082E08AD086E088D08A
:1001A0008CE086D010E07E010894E11CF11C68D43C
:1001B00016C0E981ED3011F4107C03C0EA3029F457
:1001C000105C812F806874D00AC0E7FF05C0F0E0A2
:1001D000EC54F040E491E983898134D01F5FC7017A
:1001E00034D4882321F3E5CF85B1836085B987B105
:1001F000807F87B98AB18F708AB988B1807F88B9CA
:100200008BB18F708BB9000000002A9A00000000AB
:1002100026B199B12A982898000000002A9A000077
:10022000000086B189B12A9887FDF6CF299887B159
:100230008F6087B98AB1806F8AB9907F2F70892FBC
:10024000822B0895289A000000002A9A98B1907F86
:1002500098B928B1982F9F70922B98B99BB19F7035
:100260009BB99BB1807F982B9BB9000000002A9816
:100270002898299A87B1807F87B98AB18F708AB907
:1002800088B1807F88B98BB18F708BB90000000076
:100290002A9A0000000086B189B12A9887FDF6CF1E
:1002A000299887B18F6087B98AB1806F8AB908951C
:1002B000000000002A9A98B1907F98B928B1982F31
:1002C0009F70922B98B99BB19F709BB99BB1807F17
:1002D000982B9BB9000000002A98299A87B1807F4B
:1002E00087B98AB18F708AB988B1807F88B98BB19C
:1002F0008F708BB9000000002A9A0000000086B1C0
:1003000089B12A9887FDF6CF299887B18F6087B980
:100310008AB1806F8AB9089584B1876084B987B142
:100320008F6087B98AB1806F8AB9000000002A9A6D
:1003300088B1807F88B988B188B98BB18F708BB94B
:100340008BB180638BB9000000002A9880E29EE4A4
:100350000197F1F7000000002A9A88B1807F88B9E0
:1003600088B188B98BB18F708BB98BB180638BB931
:10037000000000002A9880E991E00197F1F780E3FE
:1003800097DF8CE395DF08956295660F660F607CBA
:10039000680F862F80688CDF08950F931F93CF938B
:1003A000DF93982F8B0180E0692FEEDFC0E0D0E073
:1003B000F801EC0FFD1F808145DF2196C031D1058A
:1003C000B9F7DF91CF911F910F9108950F931F936C
:1003D000CF93DF93982F8B0180E0692FD5DFC0E0AA
:1003E000D0E002DFF801EC0FFD1F80832196C031C1
:1003F000D105B9F7DF91CF911F910F9108950F9318
:100400001F93DF93CF93CDB7DEB760970FB6F89405
:10041000DEBF0FBECDBF81E08E010F5F1F4FB80161
:10042000D5DF80E0B801B9DF80E061E0ADDF00E05A
:1004300080E208DF0F5F0031D9F760960FB6F894BD
:10044000DEBF0FBECDBFCF91DF911F910F910895F9
:10045000E9E6F0E0808182608083E89A8BE4809313
:100460006601809391018AE58093650180939001F4
:1004700008951F93CF93DF93DC01162FEA01888143
:1004800084FF05C0898198E88927898302C08AE5AD
:100490008883AE014E5F5F4FFA01212F8D918193CA
:1004A0002150E1F7CA01612F3FD11C5F1883DF9112
:1004B000CF911F91089540E951E0DBDF089545E6B3
:1004C00051E0D7DF08951F93CF93DF9360917601BA
:1004D000635067FDAAC080917301CCE0D0E0C81BD7
:1004E000D109C658DE4F80917201803118F4CE01D7
:1004F0007CD299C08D3209F086C0683009F093C073
:1005000083EC80935A018AE58093000110920C01DC
:100510008881807621F0CE014FD2282F61C09A8148
:10052000109263018981882321F41092640122E0F2
:1005300050C0853019F4909377014AC0863091F508
:100540008B81813019F48EED90E017C0823021F458
:10055000CE011DD2282F22C08330F9F48A8188234E
:1005600041F484EB90E0909375018093740124E052
:1005700015C0813041F488EB90E090937501809331
:10058000740122E10BC0823041F48AEC90E0909338
:1005900075018093740124E101C020E080E4809320
:1005A0000C011EC0883021F421E089E791E013C0DE
:1005B000893019F4909379010BC08A3011F421E04D
:1005C00008C08B3029F48BE48093660180939101FD
:1005D00020E083E691E0909375018093740109C057
:1005E0002F3F39F4888187FD2E8180E880930C01AC
:1005F00006C08F81882319F48E81821708F0822F1C
:100600008093010110C080910C0187FF0CC0CE01C6
:10061000C1D28F3F21F48EE18093000104C0882372
:1006200011F010920101109276018091000184FF77
:1006300058C0809101018F3F09F453C0182F8930B1
:1006400008F018E0811B8093010180915A0198E81D
:10065000892780935A01112391F180910C0187FF22
:1006600008C08BE591E0612F9FD2182F893098F553
:1006700026C0209174013091750186FF0DC0ABE555
:10068000B1E080E090E0F901E80FF91FE491ED930B
:1006900001961817C1F708C0D901912FEBE5F1E0D9
:1006A0008D9181939150E1F71150812F90E01F5F60
:1006B0000196820F931F90937501809374018BE5CF
:1006C00091E0612F31D0612F6C5F6C3041F08FEF82
:1006D0008093010104C08FEF809301016EE160936C
:1006E000000194E189B18C7031F49150D9F71092E6
:1006F000770110927101DF91CF911F910895A82F7A
:10070000B92F80E090E041E050EA609530E009C008
:100710002D9182279795879510F084279527305E35
:10072000C8F36F5FA8F30895EADF8D939D93089552
:10073000CF93CFB7CF93DF93C3954B9BE9F74B9BF9
:100740000BC04B9B09C04B9B07C04B9B05C04B9BF1
:1007500003C04B9B01C08EC06F93C0917301DD2716
:10076000C658DE4F2F9365E54B9B03C02F916F91C9
:10077000E6CF0F931F934F9320E040E15F9309B1C1
:100780000C7003FB27F93F9350E03BE039C01C702D
:1007900040642F77012F5F5F1EC0406819B11C7045
:1007A0002F7752501FC0406409B12F770C70D1F1E0
:1007B0005F5F00C023C0406219B12F771C7091F1B8
:1007C0005F5F00C025C00C701027515012F45D5FB0
:1007D0000000115027952C3F19B1C8F61C70012755
:1007E000015027952C3FC8F64227499309B10C7058
:1007F00010274F73115027952C3FA8F64695469524
:1008000019B11C7079F00127015027952C3F98F6FB
:100810006B5A60F3315009B1B0F600C011E01CBB57
:1008200000271CC03B503195C31BD04011E01CBBBE
:100830000881033C21F10B3411F1209171011981E0
:10084000110F1213EDCF4A81441F093669F10D32A1
:1008500011F0013E29F74F7009F0042F0093780141
:100860003F915F914F911F910F912F916F91CCB359
:10087000C0FD62CFDF91CF91CFBFCF91189520916E
:100880007801222369F3109176011123E9F53430C0
:10089000EAF13093760120937201109173013BE0ED
:1008A000311B3093730132C000917601013064F541
:1008B0000AE54F7049F43091000134FD28C00093DF
:1008C0000001CAE5D1E027C0433049F0309165010D
:1008D00034FD1DC000936501C6E6D1E01CC0309117
:1008E000900134FD14C000939001C1E9D1E013C020
:1008F000052710E000C000000BB91AC0052710E062
:10090000221F1DC010E021C04AE502C032ED432F76
:10091000C4E1D0E032E01AB11C605B9A0BB11AB9A5
:100920005CE020E865E320FF05270BB927951795C4
:100930001C3FF0F66695B8F7B1F720FF05270BB915
:10094000279517951C3FD0F62795179517FF052774
:1009500000001C3F0BB9B0F629913A9519F7037FB7
:1009600010917701110FC651D0400BB911F01093BF
:10097000710111E01CBB08601AB1137F402F437F47
:1009800054E05A95F1F70BB91AB94BB969CFFC018C
:100990008381813049F48EED90E0909375018093CE
:1009A00074018091DE00089580EF90E090937501CE
:1009B0008093740183E40895FC0180818076803205
:1009C00091F49181892F8052823010F48FEF089535
:1009D000923249F480910E01882329F482E08093B9
:1009E0000E0180E0089580E00895DC01E0912F0180
:1009F0009E2F9F5F209130010DC0903209F490E04E
:100A00006150921749F0F0E0E15FFE4F8D918083D5
:100A1000E92F9F5F662389F7E0932F010895282F20
:100A2000E09151019E2F9F5F903209F490E08091F8
:100A30005201981711F480E00895F0E0EF5CFE4F4A
:100A400020839093510181E00895DC019091300161
:100A500080912F01981711F480E00895E92FF0E0BC
:100A6000E15FFE4F80818C93892F8F5F80933001EF
:100A7000803211F081E008951092300181E00895F4
:100A8000DF93CF93CDB7DEB728970FB6F894DEBFCC
:100A90000FBECDBF18DD80910D01882331F49091F8
:100AA000520180915101981759F18091650184FF9D
:100AB00027C070915101909152019E012F5F3F4FCD
:100AC000D901AE01475F5F4F12C0E92FF0E0EF5C44
:100AD000FE4F80818C939F5F903209F490E01196D5
:100AE000A417B50721F49093520168E006C06A2F5D
:100AF000621B971751F790935201CE010196DFDCEC
:100B000090910E01992399F08091900184FF0FC07C
:100B1000923021F482E091E068E003C08AE091E045
:100B200062E0C9DC80910E01815080930E0128960D
:100B30000FB6F894DEBF0FBECDBFCF91DF91089501
:100B400087DC539A84EF91E020E931E0F901319795
:100B5000F1F70197D9F780E88093530185E28093FC
:100B600054011092550110925601109257011092A3
:100B7000580188E08093590110922F0110923001A2
:100B8000109251011092520110920E0110920D011B
:100B900053980895A3E5B1E0FC0187E001900D9220
:100BA0008150E1F781E00895DC01E3E5F1E087E0C1
:100BB00001900D928150E1F787E00895F894FFCFFE
:0C0BC0005AFFA12000000000020003000A
:00000001FF

+ 190
- 0
firmware/firmware_m88.hex View File

@@ -0,0 +1,190 @@
:1000000099C096C3B2C0B1C0B0C0AFC0AEC0ADC0A1
:10001000ACC0ABC0AAC0A9C0A8C0A7C0A6C0A5C09C
:10002000A4C0A3C0A2C0A1C0A0C09FC09EC09DC0CC
:100030009CC09BC03F3F3F3F3F3F3F3F3F3F3F3F15
:100040003F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3FC0
:100050003F3F3F3F3F3F3FB53F3F3F3F3F3F3F3F3A
:100060003F3F3F3F3F3F3FA23F3F3F3F3F3F3F3F3D
:100070003F3F3F3FC661B2E5E365E4B478B8B9BA43
:10008000BBBCBD6FBEC77063BF79B6B3C4C3B7C1D5
:10009000C5E6C0C2B041A0E1E045AAA158A5A64B63
:1000A000A74D484FA8B1504354A9A34262AEA4AC97
:1000B000AFE2ABAD040309041203720065006400F3
:1000C000730068002E00720075001403530069006D
:1000D0006D0070006C0065004C004300440012018C
:1000E000100102000008C016E10500010102000134
:1000F00009024300020100801E09040000010202FF
:100100000100052400100104240202052406000158
:100110000524010301070583030800FF090401000A
:10012000020A00000007050102080000070581021D
:100130000800000011241FBECFEFD4E0DEBFCDBF0A
:1001400011E0A0E0B1E0E0ECFBE002C005900D9210
:10015000AC30B107D9F711E0ACE0B1E001C01D92BD
:10016000AC39B107E1F702D029C54ACFEF92FF922F
:100170001F93DF93CF930F92CDB7DEB78BB1836020
:100180008BB985B1886385B988B1806388B9D8D4C3
:100190007894C2D081E08CD082E08AD086E088D08A
:1001A0008CE086D010E07E010894E11CF11C68D43C
:1001B00016C0E981ED3011F4107C03C0EA3029F457
:1001C000105C812F806874D00AC0E7FF05C0F0E0A2
:1001D000EC54F040E491E983898134D01F5FC7017A
:1001E00034D4882321F3E5CF85B1836085B987B105
:1001F000807F87B98AB18F708AB988B1807F88B9CA
:100200008BB18F708BB9000000002A9A00000000AB
:1002100026B199B12A982898000000002A9A000077
:10022000000086B189B12A9887FDF6CF299887B159
:100230008F6087B98AB1806F8AB9907F2F70892FBC
:10024000822B0895289A000000002A9A98B1907F86
:1002500098B928B1982F9F70922B98B99BB19F7035
:100260009BB99BB1807F982B9BB9000000002A9816
:100270002898299A87B1807F87B98AB18F708AB907
:1002800088B1807F88B98BB18F708BB90000000076
:100290002A9A0000000086B189B12A9887FDF6CF1E
:1002A000299887B18F6087B98AB1806F8AB908951C
:1002B000000000002A9A98B1907F98B928B1982F31
:1002C0009F70922B98B99BB19F709BB99BB1807F17
:1002D000982B9BB9000000002A98299A87B1807F4B
:1002E00087B98AB18F708AB988B1807F88B98BB19C
:1002F0008F708BB9000000002A9A0000000086B1C0
:1003000089B12A9887FDF6CF299887B18F6087B980
:100310008AB1806F8AB9089584B1876084B987B142
:100320008F6087B98AB1806F8AB9000000002A9A6D
:1003300088B1807F88B988B188B98BB18F708BB94B
:100340008BB180638BB9000000002A9880E29EE4A4
:100350000197F1F7000000002A9A88B1807F88B9E0
:1003600088B188B98BB18F708BB98BB180638BB931
:10037000000000002A9880E991E00197F1F780E3FE
:1003800097DF8CE395DF08956295660F660F607CBA
:10039000680F862F80688CDF08950F931F93CF938B
:1003A000DF93982F8B0180E0692FEEDFC0E0D0E073
:1003B000F801EC0FFD1F808145DF2196C031D1058A
:1003C000B9F7DF91CF911F910F9108950F931F936C
:1003D000CF93DF93982F8B0180E0692FD5DFC0E0AA
:1003E000D0E002DFF801EC0FFD1F80832196C031C1
:1003F000D105B9F7DF91CF911F910F9108950F9318
:100400001F93DF93CF93CDB7DEB760970FB6F89405
:10041000DEBF0FBECDBF81E08E010F5F1F4FB80161
:10042000D5DF80E0B801B9DF80E061E0ADDF00E05A
:1004300080E208DF0F5F0031D9F760960FB6F894BD
:10044000DEBF0FBECDBFCF91DF911F910F910895F9
:10045000E9E6F0E0808182608083E89A8BE4809313
:100460006601809391018AE58093650180939001F4
:1004700008951F93CF93DF93DC01162FEA01888143
:1004800084FF05C0898198E88927898302C08AE5AD
:100490008883AE014E5F5F4FFA01212F8D918193CA
:1004A0002150E1F7CA01612F3FD11C5F1883DF9112
:1004B000CF911F91089540E951E0DBDF089545E6B3
:1004C00051E0D7DF08951F93CF93DF9360917601BA
:1004D000635067FDAAC080917301CCE0D0E0C81BD7
:1004E000D109C658DE4F80917201803118F4CE01D7
:1004F0007CD299C08D3209F086C0683009F093C073
:1005000083EC80935A018AE58093000110920C01DC
:100510008881807621F0CE014FD2282F61C09A8148
:10052000109263018981882321F41092640122E0F2
:1005300050C0853019F4909377014AC0863091F508
:100540008B81813019F48EED90E017C0823021F458
:10055000CE011DD2282F22C08330F9F48A8188234E
:1005600041F484EB90E0909375018093740124E052
:1005700015C0813041F488EB90E090937501809331
:10058000740122E10BC0823041F48AEC90E0909338
:1005900075018093740124E101C020E080E4809320
:1005A0000C011EC0883021F421E089E791E013C0DE
:1005B000893019F4909379010BC08A3011F421E04D
:1005C00008C08B3029F48BE48093660180939101FD
:1005D00020E083E691E0909375018093740109C057
:1005E0002F3F39F4888187FD2E8180E880930C01AC
:1005F00006C08F81882319F48E81821708F0822F1C
:100600008093010110C080910C0187FF0CC0CE01C6
:10061000C1D28F3F21F48EE18093000104C0882372
:1006200011F010920101109276018091000184FF77
:1006300058C0809101018F3F09F453C0182F8930B1
:1006400008F018E0811B8093010180915A0198E81D
:10065000892780935A01112391F180910C0187FF22
:1006600008C08BE591E0612F9FD2182F893098F553
:1006700026C0209174013091750186FF0DC0ABE555
:10068000B1E080E090E0F901E80FF91FE491ED930B
:1006900001961817C1F708C0D901912FEBE5F1E0D9
:1006A0008D9181939150E1F71150812F90E01F5F60
:1006B0000196820F931F90937501809374018BE5CF
:1006C00091E0612F31D0612F6C5F6C3041F08FEF82
:1006D0008093010104C08FEF809301016EE160936C
:1006E000000194E189B18C7031F49150D9F71092E6
:1006F000770110927101DF91CF911F910895A82F7A
:10070000B92F80E090E041E050EA609530E009C008
:100710002D9182279795879510F084279527305E35
:10072000C8F36F5FA8F30895EADF8D939D93089552
:10073000CF93CFB7CF93DF93C3954B9BE9F74B9BF9
:100740000BC04B9B09C04B9B07C04B9B05C04B9BF1
:1007500003C04B9B01C08EC06F93C0917301DD2716
:10076000C658DE4F2F9365E54B9B03C02F916F91C9
:10077000E6CF0F931F934F9320E040E15F9309B1C1
:100780000C7003FB27F93F9350E03BE039C01C702D
:1007900040642F77012F5F5F1EC0406819B11C7045
:1007A0002F7752501FC0406409B12F770C70D1F1E0
:1007B0005F5F00C023C0406219B12F771C7091F1B8
:1007C0005F5F00C025C00C701027515012F45D5FB0
:1007D0000000115027952C3F19B1C8F61C70012755
:1007E000015027952C3FC8F64227499309B10C7058
:1007F00010274F73115027952C3FA8F64695469524
:1008000019B11C7079F00127015027952C3F98F6FB
:100810006B5A60F3315009B1B0F600C011E01CBB57
:1008200000271CC03B503195C31BD04011E01CBBBE
:100830000881033C21F10B3411F1209171011981E0
:10084000110F1213EDCF4A81441F093669F10D32A1
:1008500011F0013E29F74F7009F0042F0093780141
:100860003F915F914F911F910F912F916F91CCB359
:10087000C0FD62CFDF91CF91CFBFCF91189520916E
:100880007801222369F3109176011123E9F53430C0
:10089000EAF13093760120937201109173013BE0ED
:1008A000311B3093730132C000917601013064F541
:1008B0000AE54F7049F43091000134FD28C00093DF
:1008C0000001CAE5D1E027C0433049F0309165010D
:1008D00034FD1DC000936501C6E6D1E01CC0309117
:1008E000900134FD14C000939001C1E9D1E013C020
:1008F000052710E000C000000BB91AC0052710E062
:10090000221F1DC010E021C04AE502C032ED432F76
:10091000C4E1D0E032E01AB11C605B9A0BB11AB9A5
:100920005CE020E865E320FF05270BB927951795C4
:100930001C3FF0F66695B8F7B1F720FF05270BB915
:10094000279517951C3FD0F62795179517FF052774
:1009500000001C3F0BB9B0F629913A9519F7037FB7
:1009600010917701110FC651D0400BB911F01093BF
:10097000710111E01CBB08601AB1137F402F437F47
:1009800054E05A95F1F70BB91AB94BB969CFFC018C
:100990008381813049F48EED90E0909375018093CE
:1009A00074018091DE00089580EF90E090937501CE
:1009B0008093740183E40895FC0180818076803205
:1009C00091F49181892F8052823010F48FEF089535
:1009D000923249F480910E01882329F482E08093B9
:1009E0000E0180E0089580E00895DC01E0912F0180
:1009F0009E2F9F5F209130010DC0903209F490E04E
:100A00006150921749F0F0E0E15FFE4F8D918083D5
:100A1000E92F9F5F662389F7E0932F010895282F20
:100A2000E09151019E2F9F5F903209F490E08091F8
:100A30005201981711F480E00895F0E0EF5CFE4F4A
:100A400020839093510181E00895DC019091300161
:100A500080912F01981711F480E00895E92FF0E0BC
:100A6000E15FFE4F80818C93892F8F5F80933001EF
:100A7000803211F081E008951092300181E00895F4
:100A8000DF93CF93CDB7DEB728970FB6F894DEBFCC
:100A90000FBECDBF18DD80910D01882331F49091F8
:100AA000520180915101981759F18091650184FF9D
:100AB00027C070915101909152019E012F5F3F4FCD
:100AC000D901AE01475F5F4F12C0E92FF0E0EF5C44
:100AD000FE4F80818C939F5F903209F490E01196D5
:100AE000A417B50721F49093520168E006C06A2F5D
:100AF000621B971751F790935201CE010196DFDCEC
:100B000090910E01992399F08091900184FF0FC07C
:100B1000923021F482E091E068E003C08AE091E045
:100B200062E0C9DC80910E01815080930E0128960D
:100B30000FB6F894DEBF0FBECDBFCF91DF91089501
:100B400087DC539A84EF91E020E931E0F901319795
:100B5000F1F70197D9F780E88093530185E28093FC
:100B600054011092550110925601109257011092A3
:100B7000580188E08093590110922F0110923001A2
:100B8000109251011092520110920E0110920D011B
:100B900053980895A3E5B1E0FC0187E001900D9220
:100BA0008150E1F781E00895DC01E3E5F1E087E0C1
:100BB00001900D928150E1F787E00895F894FFCFFE
:0C0BC0005AFFA12000000000020003000A
:00000001FF

BIN
sources.zip View File


+ 150
- 0
src.with_uart_input/44780.c View File

@@ -0,0 +1,150 @@
/* -------------------------------------------------------------------------- */
#include "44780.h"
/* -------------------------------------------------------------------------- */
inline
void lcdWrite(uint8_t data)
{
nop();
nop();
LCD_PORT |= LCD_E;
lcd_bus_set(data);
nop();
nop();
LCD_PORT &= ~LCD_E;
}
/* -------------------------------------------------------------------------- */
inline
uint8_t lcdRead()
{
uint8_t data;
nop();
nop();
LCD_PORT |= LCD_E;
nop();
nop();
data = lcd_bus_read();
LCD_PORT &= ~LCD_E;
return data;
}
/* -------------------------------------------------------------------------- */
uint8_t lcdReadData()
{
uint8_t data;
//read data
LCD_PORT |= LCD_RS|LCD_RW;
lcd_bus_in();
data = lcdRead();
LCD_PORT &= ~LCD_RS;
//wait till lcd busy
while(lcdRead() & LCD_BUSY_FLAG)
;
LCD_PORT &= ~LCD_RW;
lcd_bus_out();
return data;
}
/* -------------------------------------------------------------------------- */
void lcdWriteData(uint8_t data)
{
//submit data
LCD_PORT |= LCD_RS;
lcdWrite(data);
LCD_PORT &= ~LCD_RS;
//wait till lcd busy
LCD_PORT |= LCD_RW;
lcd_bus_in();
while(lcdRead() & LCD_BUSY_FLAG)
;
LCD_PORT &= ~LCD_RW;
lcd_bus_out();
}
/* -------------------------------------------------------------------------- */
void lcdCommand(uint8_t cmd)
{
//submit command
lcdWrite(cmd);
//wait till lcd busy
LCD_PORT |= LCD_RW;
lcd_bus_in();
while(lcdRead() & LCD_BUSY_FLAG)
;
LCD_PORT &= ~LCD_RW;
lcd_bus_out();
}
/* -------------------------------------------------------------------------- */
void lcdSetup()
{
lcd_ctl_out();
lcd_bus_out();
lcdWrite(0x30);
_delay_ms(5);
lcdWrite(0x30);
_delay_us(100);
lcdCommand(0x30);
lcdCommand(0x3c);
}
/* -------------------------------------------------------------------------- */
void lcdReadLine(uint8_t line, uint8_t *buf)
{
uint8_t i;
lcdGotoXY(0, line);
for(i = 0; i < LCD_WIDTH; ++i)
buf[i] = lcdReadData();
}
/* -------------------------------------------------------------------------- */
void lcdWriteLine(uint8_t line, uint8_t *buf)
{
uint8_t i;
lcdGotoXY(0, line);
for(i = 0; i < LCD_WIDTH; ++i)
lcdWriteData(buf[i]);
}
/* -------------------------------------------------------------------------- */
void lcdScroll()
{
uint8_t buf[LCD_WIDTH], i;
i = LCD_HEIGHT-1;
while(i)
{
lcdReadLine(i, buf);
i--;
lcdWriteLine(i, buf);
}
lcdGotoXY(0, LCD_HEIGHT-1);
for(i = 0; i < LCD_WIDTH; ++i)
lcdWriteData(' ');
}
/* -------------------------------------------------------------------------- */
void lcdGotoXY(uint8_t x, uint8_t y)
{
lcdCommand(LCD_SET_CURSOR(y*LCD_LINE_WIDTH+x));
}
/* -------------------------------------------------------------------------- */

+ 77
- 0
src.with_uart_input/44780.h View File

@@ -0,0 +1,77 @@
/* -------------------------------------------------------------------------- */
#ifndef __44780_h__
#define __44780_h__
/* -------------------------------------------------------------------------- */
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
/* -------------------------------------------------------------------------- */
#define LCD_WIDTH 16
#define LCD_HEIGHT 2
#define LCD_LINE_WIDTH 0x40
#define LCD_BUSY_FLAG 0x80
#define LCD_CLEAR 0x01
#define LCD_HOME 0x02
#define LCD_MOVEDIR(id,s) (0x04 | (((id) << 1)) | (s))
#define LCD_MODE(d,c,b) (0x08 | (((d) << 2)) | ((c) << 1) | (b))
#define LCD_SHIFT(sc,rl) (0x10 | ( ((sc) << 3) | ((rl) << 2)) )
#define LCD_GOTO_CGRAM(pos) (0x40 | ((pos) & 0x3f))
#define LCD_SET_CURSOR(pos) (0x80 | ((pos) & 0x7f))
/* -------------------------------------------------------------------------- */
#define LCD_PORT PORTB
#define LCD_RS (1<<PB0)
#define LCD_RW (1<<PB1)
#define LCD_E (1<<PB2)
#define lcd_bus_set(data)\
PORTC &= ~0x0f;\
PORTC |= (data) & 0x0f;\
PORTD &= ~0xf0;\
PORTD |= (data) & 0xf0
#define lcd_bus_read() ((PINC & 0x0f) | (PIND & 0xf0))
#define lcd_bus_in()\
DDRC &= ~0x0f;\
DDRD &= ~0xf0;\
PORTC &= ~0x0f;\
PORTD &= ~0xf0
#define lcd_bus_out()\
DDRC |= 0x0f;\
DDRD |= 0xf0
#define lcd_ctl_out() DDRB |= 0x07
#define nop() asm("nop")
/* -------------------------------------------------------------------------- */
void lcdSetup();
uint8_t lcdReadData();
void lcdWriteData(uint8_t data);
void lcdCommand(uint8_t cmd);
void lcdScroll();
void lcdGotoXY(uint8_t x, uint8_t y);
void lcdScroll();
void lcdWriteLine(uint8_t line, uint8_t *buf);
void lcdReadLine(uint8_t line, uint8_t *buf);
/* -------------------------------------------------------------------------- */
#endif
/* -------------------------------------------------------------------------- */

+ 301
- 0
src.with_uart_input/avrcdc.c View File

@@ -0,0 +1,301 @@
/* -------------------------------------------------------------------------- */
#include "avrcdc.h"
/* -------------------------------------------------------------------------- */
enum
{
SEND_ENCAPSULATED_COMMAND = 0,
GET_ENCAPSULATED_RESPONSE,
SET_COMM_FEATURE,
GET_COMM_FEATURE,
CLEAR_COMM_FEATURE,
SET_LINE_CODING = 0x20,
GET_LINE_CODING,
SET_CONTROL_LINE_STATE,
SEND_BREAK
};
/* -------------------------------------------------------------------------- */
static PROGMEM char configDescrCDC[] = {
/*
* Configuration descriptor
*/
9,
USBDESCR_CONFIG,
67,
0,
2,
1,
0,
0x80,
USB_CFG_MAX_BUS_POWER/2,
/*
* CDC Configuration Interface
*/
9,
USBDESCR_INTERFACE,
0,
0,
USB_CFG_HAVE_INTRIN_ENDPOINT,
USB_CFG_INTERFACE_CLASS,
USB_CFG_INTERFACE_SUBCLASS,
USB_CFG_INTERFACE_PROTOCOL,
0,
//header
5,
0x24,
0,
0x10, 0x01,
//acm descriptor
4,
0x24,
2,
0x02,
//union descriptor
5,
0x24,
6,
0,
1,
//call management descriptor
5,
0x24,
1,
3,
1,
//notification interrupt ep
7,
USBDESCR_ENDPOINT,
0x80|USB_CFG_EP3_NUMBER,
0x03,
8, 0,
USB_CFG_INTR_POLL_INTERVAL,
/*
* CDC Data Interface
*/
9,
USBDESCR_INTERFACE,
1,
0,
2,
0x0A,
0,
0,
0,
//bulk-out data ep
7,
USBDESCR_ENDPOINT,
0x01,
0x02,
8, 0,
0,
//bulk-in data ep
7,
USBDESCR_ENDPOINT,
0x81,
0x02,
8, 0,
0
};
/* -------------------------------------------------------------------------- */
static uint8_t send_empty_frame;
static uint8_t send_carrier_detect;
static uint8_t usbuart_rx_buf[USBUART_RX_SIZE], usbuart_rx_wp, usbuart_rx_rp;
static uint8_t usbuart_tx_buf[USBUART_TX_SIZE], usbuart_tx_wp, usbuart_tx_rp;
static uint8_t usbuartState[7];
/* -------------------------------------------------------------------------- */
uint8_t usbFunctionDescriptor(usbRequest_t *rq)
{
if(rq->wValue.bytes[1] == USBDESCR_DEVICE)
{
usbMsgPtr = (uint8_t*)usbDescriptorDevice;
return usbDescriptorDevice[0];
}
else
{ /* must be config descriptor */
usbMsgPtr = (uint8_t*)configDescrCDC;
return sizeof(configDescrCDC);
}
}
/* -------------------------------------------------------------------------- */
uint8_t usbFunctionSetup(uint8_t data[8])
{
usbRequest_t *rq = (void*)data;
if((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS)
{
if( (rq->bRequest == GET_LINE_CODING) ||
(rq->bRequest == SET_LINE_CODING) )
{
return 0xff;
}
if(rq->bRequest == SET_CONTROL_LINE_STATE)
{
/* Report serial state (carrier detect). On several Unix platforms,
* tty devices can only be opened when carrier detect is set.
*/
if(send_carrier_detect == 0)
send_carrier_detect = 2;
}
/* Prepare bulk-in endpoint to respond to early termination */
/*if((rq->bmRequestType & USBRQ_DIR_MASK) == USBRQ_DIR_HOST_TO_DEVICE)
send_empty_frame = 1;*/
}
return 0;
}
/* -------------------------------------------------------------------------- */
uint8_t usbFunctionRead(uint8_t *data, uint8_t len)
{
/* GET_LINE_CODING */
memcpy(data, usbuartState, 7);
return 7;
}
/* -------------------------------------------------------------------------- */
uint8_t usbFunctionWrite(uint8_t *data, uint8_t len)
{
/* SET_LINE_CODING */
memcpy(usbuartState, data, 7);
return 1;
}
/* -------------------------------------------------------------------------- */
void usbFunctionWriteOut(uint8_t *data, uint8_t len)
{
uint8_t usbuart_rx_wpnext;
usbuart_rx_wpnext = usbuart_rx_wp + 1;
while(len--)
{
if(usbuart_rx_wpnext == USBUART_RX_SIZE)
usbuart_rx_wpnext = 0;
if(usbuart_rx_wpnext == usbuart_rx_rp)
break;
usbuart_rx_buf[usbuart_rx_wp] = *(data++);
usbuart_rx_wp = usbuart_rx_wpnext++;
}
}
/* -------------------------------------------------------------------------- */
void usbuartInit()
{
usbInit();
usbDeviceDisconnect();
_delay_ms(50);
usbuartState[0] = 0x80;
usbuartState[1] = 0x25;
usbuartState[2] = 0x00;
usbuartState[3] = 0x00;
usbuartState[4] = 0x00;
usbuartState[5] = 0x00;
usbuartState[6] = 0x08;
usbuart_rx_wp = 0;
usbuart_rx_rp = 0;
usbuart_tx_wp = 0;
usbuart_tx_rp = 0;
send_carrier_detect = 0;
send_empty_frame = 0;
usbDeviceConnect();
}
/* -------------------------------------------------------------------------- */
void usbuartPoll()
{
static uint8_t serialStateNotification[10] = {0xa1, 0x20, 0, 0, 0, 0, 2, 0, 3, 0};
uint8_t buf[8], size;
usbPoll();
if( ((send_empty_frame) || (usbuart_tx_rp != usbuart_tx_wp)) &&
usbInterruptIsReady() )
{
size = 0;
while( (size != 8) && (usbuart_tx_rp != usbuart_tx_wp) )
{
buf[size++] = usbuart_tx_buf[usbuart_tx_rp++];
if(usbuart_tx_rp == USBUART_TX_SIZE)
usbuart_tx_rp = 0;
}
usbSetInterrupt(buf, size);
//send_empty_frame = (size == 8) && (usbuart_tx_rp == usbuart_tx_wp);
}
if( (send_carrier_detect) &&
usbInterruptIsReady3() )
{
if(send_carrier_detect == 2)
usbSetInterrupt3(serialStateNotification, 8);
else
usbSetInterrupt3(serialStateNotification + 8, 2);
send_carrier_detect--;
}
}
/* -------------------------------------------------------------------------- */
uint8_t usbuartTx(uint8_t data)
{
uint8_t usbuart_tx_wpnext;
usbuart_tx_wpnext = usbuart_tx_wp + 1;
if(usbuart_tx_wpnext == USBUART_TX_SIZE)
usbuart_tx_wpnext = 0;
if(usbuart_tx_wpnext != usbuart_tx_rp)
{
usbuart_tx_buf[usbuart_tx_wp] = data;
usbuart_tx_wp = usbuart_tx_wpnext;
return 1;
}
return 0;
}
/* -------------------------------------------------------------------------- */
uint8_t usbuartRx(uint8_t *pdata)
{
if(usbuart_rx_rp != usbuart_rx_wp)
{
*pdata = usbuart_rx_buf[usbuart_rx_rp++];
if(usbuart_rx_rp == USBUART_RX_SIZE)
usbuart_rx_rp = 0;
return 1;
}
return 0;
}
/* -------------------------------------------------------------------------- */

+ 33
- 0
src.with_uart_input/avrcdc.h View File

@@ -0,0 +1,33 @@
/* -------------------------------------------------------------------------- */
#ifndef __avrcdc_h__
#define __avrcdc_h__
/* -------------------------------------------------------------------------- */
#include <string.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <avr/wdt.h>
#include <util/delay.h>
#include "usbdrv/usbdrv.h"
/* -------------------------------------------------------------------------- */
#define USBUART_RX_SIZE 32
#define USBUART_TX_SIZE 32
/* -------------------------------------------------------------------------- */
void usbuartInit();
void usbuartPoll();
uint8_t usbuartTx(uint8_t data);
uint8_t usbuartRx(uint8_t *pdata);
/* -------------------------------------------------------------------------- */
#endif
/* -------------------------------------------------------------------------- */

BIN
src.with_uart_input/default/44780.o View File


+ 87
- 0
src.with_uart_input/default/Makefile View File

@@ -0,0 +1,87 @@
###############################################################################
# Makefile for the project linuxlcd
###############################################################################
## General Flags
PROJECT = linuxlcd
MCU = atmega48
TARGET = linuxlcd.elf
CC = avr-gcc.exe
## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)
## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS += -Wl,-Map=linuxlcd.map
## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom
HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
## Objects that must be built in order to link
OBJECTS = main.o 44780.o usbdrv.o usbdrvasm.o avrcdc.o
## Objects explicitly added by the user
LINKONLYOBJECTS =
## Build
all: $(TARGET) linuxlcd.hex linuxlcd.eep linuxlcd.lss size
## Compile
usbdrvasm.o: ../usbdrv/usbdrvasm.S
$(CC) $(INCLUDES) $(ASMFLAGS) -c $<
main.o: ../main.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
44780.o: ../44780.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
usbdrv.o: ../usbdrv/usbdrv.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
avrcdc.o: ../avrcdc.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
##Link
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
%.hex: $(TARGET)
avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@
%.eep: $(TARGET)
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0
%.lss: $(TARGET)
avr-objdump -h -S $< > $@
size: ${TARGET}
@echo
@avr-size -C --mcu=${MCU} ${TARGET}
## Clean target
.PHONY: clean
clean:
-rm -rf $(OBJECTS) linuxlcd.elf dep/* linuxlcd.hex linuxlcd.eep linuxlcd.lss linuxlcd.map
## Other dependencies
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)

BIN
src.with_uart_input/default/avrcdc.o View File


+ 48
- 0
src.with_uart_input/default/dep/44780.o.d View File

@@ -0,0 +1,48 @@
44780.o: ../44780.c ../44780.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/inttypes.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/stdint.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/pgmspace.h \
c:\dev\apps\winavr-20100110\bin\../lib/gcc/avr/4.3.3/include/stddef.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h
../44780.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/inttypes.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/stdint.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/pgmspace.h:
c:\dev\apps\winavr-20100110\bin\../lib/gcc/avr/4.3.3/include/stddef.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h:

+ 64
- 0
src.with_uart_input/default/dep/avrcdc.o.d View File

@@ -0,0 +1,64 @@
avrcdc.o: ../avrcdc.c ../avrcdc.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/string.h \
c:\dev\apps\winavr-20100110\bin\../lib/gcc/avr/4.3.3/include/stddef.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/inttypes.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/stdint.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/interrupt.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/pgmspace.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/wdt.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h \
../usbdrv/usbdrv.h ../usbdrv/usbconfig.h ../usbdrv/usbportability.h
../avrcdc.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/string.h:
c:\dev\apps\winavr-20100110\bin\../lib/gcc/avr/4.3.3/include/stddef.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/inttypes.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/stdint.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/interrupt.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/pgmspace.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/wdt.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h:
../usbdrv/usbdrv.h:
../usbdrv/usbconfig.h:
../usbdrv/usbportability.h:

+ 71
- 0
src.with_uart_input/default/dep/main.o.d View File

@@ -0,0 +1,71 @@
main.o: ../main.c \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/inttypes.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/stdint.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/interrupt.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/setbaud.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/pgmspace.h \
c:\dev\apps\winavr-20100110\bin\../lib/gcc/avr/4.3.3/include/stddef.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/string.h \
../avrcdc.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/wdt.h \
../usbdrv/usbdrv.h ../usbdrv/usbconfig.h ../usbdrv/usbportability.h \
../44780.h
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/inttypes.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/stdint.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/interrupt.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/util/setbaud.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/pgmspace.h:
c:\dev\apps\winavr-20100110\bin\../lib/gcc/avr/4.3.3/include/stddef.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/string.h:
../avrcdc.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/wdt.h:
../usbdrv/usbdrv.h:
../usbdrv/usbconfig.h:
../usbdrv/usbportability.h:
../44780.h:

+ 49
- 0
src.with_uart_input/default/dep/usbdrv.o.d View File

@@ -0,0 +1,49 @@
usbdrv.o: ../usbdrv/usbdrv.c ../usbdrv/usbportability.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/inttypes.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/stdint.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/pgmspace.h \
c:\dev\apps\winavr-20100110\bin\../lib/gcc/avr/4.3.3/include/stddef.h \
../usbdrv/usbdrv.h ../usbdrv/usbconfig.h ../usbdrv/oddebug.h
../usbdrv/usbportability.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/inttypes.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/stdint.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/pgmspace.h:
c:\dev\apps\winavr-20100110\bin\../lib/gcc/avr/4.3.3/include/stddef.h:
../usbdrv/usbdrv.h:
../usbdrv/usbconfig.h:
../usbdrv/oddebug.h:

+ 40
- 0
src.with_uart_input/default/dep/usbdrvasm.o.d View File

@@ -0,0 +1,40 @@
usbdrvasm.o: ../usbdrv/usbdrvasm.S ../usbdrv/usbportability.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h \
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h \
../usbdrv/usbdrv.h ../usbdrv/usbconfig.h ../usbdrv/usbdrvasm16.inc \
../usbdrv/asmcommon.inc
../usbdrv/usbportability.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/sfr_defs.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iom48.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/iomx8.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/portpins.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/common.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/version.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/fuse.h:
c:/dev/apps/winavr-20100110/lib/gcc/../../avr/include/avr/lock.h:
../usbdrv/usbdrv.h:
../usbdrv/usbconfig.h:
../usbdrv/usbdrvasm16.inc:
../usbdrv/asmcommon.inc:

+ 1
- 0
src.with_uart_input/default/linuxlcd.eep View File

@@ -0,0 +1 @@
:00000001FF

BIN
src.with_uart_input/default/linuxlcd.elf View File


+ 205
- 0
src.with_uart_input/default/linuxlcd.hex View File

@@ -0,0 +1,205 @@
:100000009DC00BC4B6C0B5C0B4C0B3C0B2C0B1C00F
:10001000B0C0AFC0AEC0ADC0ACC0ABC0AAC0A9C07C
:10002000A8C0A7C0A6C0A5C0A4C0A3C0A2C0A1C0AC
:10003000A0C09FC03F3F3F3F3F3F3F3F3F3F3F3F0D
:100040003F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3FC0
:100050003F3F3F3F3F3F3FB53F3F3F3F3F3F3F3F3A
:100060003F3F3F3F3F3F3FA23F3F3F3F3F3F3F3F3D
:100070003F3F3F3FC661B2E5E365E4B478B8B9BA43
:10008000BBBCBD6FBEC77063BF79B6B3C4C3B7C1D5
:10009000C5E6C0C2B041A0E1E045AAA158A5A64B63
:1000A000A74D484FA8B1504354A9A34262AEA4AC97
:1000B000AFE2ABAD040309041A0362006C006900EF
:1000C0006E0064006100670065002E006F00720022
:1000D00067001403550041005200540044004500DD
:1000E0004200550047001201100102000008C0162E
:1000F000E105000101020001090243000201008044
:100100001E09040000010202010005240010010480
:1001100024020205240600010524010301070583CA
:10012000030800FF09040100020A0000000705019E
:1001300002080000070581020800000011241FBE0C
:10014000CFEFD2E0DEBFCDBF11E0A0E0B1E0EAEA40
:10015000FCE002C005900D92AC30B107D9F711E078
:10016000ACE0B1E001C01D92AC39B107E1F712D0AB
:100170009AC546CF87E68093C4001092C50080E1FF
:100180008093C10008958091C00087FFFCCF8091CB
:10019000C60008958F929F92AF92BF92CF92DF9246
:1001A000FF920F931F93DF93CF930F92CDB7DEB7DC
:1001B0008BB183608BB985B1886385B988B1806361
:1001C00088B987B187B988B188B92FD587E6809378
:1001D000C4001092C50080E18093C10078940CD1D6
:1001E00081E0D6D082E0D4D086E0D2D08CE0D0D0EE
:1001F000FF24CC24DD2490E9892E91E0992E5E0124
:100200000894A11CB11C359915C088E893E1F4014C
:100210003197F1F70197D9F7C114D10429F081E0A2
:10022000C816D10439F404C081E0C82ED12C02C014
:10023000CC24DD249AD4C114D104C9F01DC0E981B5
:10024000ED3019F4E0ECFE2204C0EA3031F4F0E4C1
:10025000FF0E8F2D80689CD00AC0E7FF05C0F0E03C
:10026000EC54F040E491E98389815CD0F394C501BA
:1002700061D4882321F7C7CF8091C00087FFFCCFCE
:100280008091C600082F10E00D30110519F480ECA4
:10029000F82208C00A30110549F436D48DE034D470
:1002A000E0E4FE0E8F2D806873D0ADCF00381105CD
:1002B0002CF00C541040F8018491082F802F24D486
:1002C000802F30D0F3949FCF85B1836085B987B1FB
:1002D000807F87B98AB18F708AB988B1807F88B9E9
:1002E0008BB18F708BB9000000002A9A00000000CB
:1002F00026B199B12A982898000000002A9A000097
:10030000000086B189B12A9887FDF6CF299887B178
:100310008F6087B98AB1806F8AB9907F2F70892FDB
:10032000822B0895289A000000002A9A98B1907FA5
:1003300098B928B1982F9F70922B98B99BB19F7054
:100340009BB99BB1807F982B9BB9000000002A9835
:100350002898299A87B1807F87B98AB18F708AB926
:1003600088B1807F88B98BB18F708BB90000000095
:100370002A9A0000000086B189B12A9887FDF6CF3D
:10038000299887B18F6087B98AB1806F8AB908953B
:10039000000000002A9A98B1907F98B928B1982F50
:1003A0009F70922B98B99BB19F709BB99BB1807F36
:1003B000982B9BB9000000002A98299A87B1807F6A
:1003C00087B98AB18F708AB988B1807F88B98BB1BB
:1003D0008F708BB9000000002A9A0000000086B1DF
:1003E00089B12A9887FDF6CF299887B18F6087B9A0
:1003F0008AB1806F8AB9089584B1876084B987B162
:100400008F6087B98AB1806F8AB9000000002A9A8C
:1004100088B1807F88B988B188B98BB18F708BB96A
:100420008BB180638BB9000000002A9880E29EE4C3
:100430000197F1F7000000002A9A88B1807F88B9FF
:1004400088B188B98BB18F708BB98BB180638BB950
:10045000000000002A9880E991E00197F1F780E31D
:1004600097DF8CE395DF08956295660F660F607CD9
:10047000680F862F80688CDF08950F931F93CF93AA
:10048000DF93982F8B0180E0692FEEDFC0E0D0E092
:10049000F801EC0FFD1F808145DF2196C031D105A9
:1004A000B9F7DF91CF911F910F9108950F931F938B
:1004B000CF93DF93982F8B0180E0692FD5DFC0E0C9
:1004C000D0E002DFF801EC0FFD1F80832196C031E0
:1004D000D105B9F7DF91CF911F910F9108950F9337
:1004E0001F93DF93CF93CDB7DEB760970FB6F89425
:1004F000DEBF0FBECDBF81E08E010F5F1F4FB80181
:10050000D5DF80E0B801B9DF80E061E0ADDF00E079
:1005100080E208DF0F5F0031D9F760960FB6F894DC
:10052000DEBF0FBECDBFCF91DF911F910F91089518
:10053000E9E6F0E0808182608083E89A8BE4809332
:100540006601809391018AE5809365018093900113
:1005500008951F93CF93DF93DC01162FEA01888162
:1005600084FF05C0898198E88927898302C08AE5CC
:100570008883AE014E5F5F4FFA01212F8D918193E9
:100580002150E1F7CA01612F44D11C5F1883DF912C
:10059000CF911F91089540E951E0DBDF089545E6D2
:1005A00051E0D7DF08951F93CF93DF9360917601D9
:1005B000635067FDAFC080917301CCE0D0E0C81BF1
:1005C000D109C658DE4F80917201803118F4CE01F6
:1005D00081D29EC08D3209F08BC0683009F098C07E
:1005E00083EC80935A018AE58093000110920C01FC
:1005F0008881807621F0CE0154D2282F66C09A815E
:10060000109263018981882321F41092640122E011
:1006100055C0853019F4909377014FC08630B9F5F5
:100620008B81813041F486EE90E090937501809348
:10063000740122E128C0823021F4CE011DD2282F7E
:1006400022C08330F9F48A81882341F484EB90E05E
:10065000909375018093740124E015C0813041F4BA
:1006600088EB90E090937501809374012AE10BC0B0
:10067000823041F482ED90E0909375018093740193
:1006800024E101C020E080E480930C011EC088308A
:1006900021F421E089E791E013C0893019F49093A7
:1006A00079010BC08A3011F421E008C08B3029F4A5
:1006B0008BE4809366018093910120E083E691E0D2
:1006C000909375018093740109C02F3F39F488819C
:1006D00087FD2E8180E880930C0106C08F818823DE
:1006E00019F48E81821708F0822F8093010110C0C7
:1006F00080910C0187FF0CC0CE01C1D28F3F21F445
:100700008EE18093000104C0882311F01092010152
:10071000109276018091000184FF58C08091010100
:100720008F3F09F453C0182F893008F018E0811B5F
:100730008093010180915A0198E8892780935A019A
:10074000112391F180910C0187FF08C08BE591E0A6
:10075000612F9FD2182F893098F526C020917401FF
:100760003091750186FF0DC0ABE5B1E080E090E00F
:10077000F901E80FF91FE491ED9301961817C1F7FD
:1007800008C0D901912FEBE5F1E08D918193915053
:10079000E1F71150812F90E01F5F0196820F931FA8
:1007A00090937501809374018BE591E0612F31D0B6
:1007B000612F6C5F6C3041F08FEF8093010104C0BA
:1007C0008FEF809301016EE16093000194E189B1A4
:1007D0008C7031F49150D9F7109277011092710119
:1007E000DF91CF911F910895A82FB92F80E090E05D
:1007F00041E050EA609530E009C02D91822797953D
:10080000879510F084279527305EC8F36F5FA8F3B3
:100810000895EADF8D939D930895CF93CFB7CF933B
:10082000DF93C3954B9BE9F74B9B0BC04B9B09C0D8
:100830004B9B07C04B9B05C04B9B03C04B9B01C010
:100840008EC06F93C0917301DD27C658DE4F2F9382
:1008500065E54B9B03C02F916F91E6CF0F931F93DC
:100860004F9320E040E15F9309B10C7003FB27F93F
:100870003F9350E03BE039C01C7040642F77012F5C
:100880005F5F1EC0406819B11C702F7752501FC0A7
:10089000406409B12F770C70D1F15F5F00C023C0B5
:1008A000406219B12F771C7091F15F5F00C025C0C5
:1008B0000C701027515012F45D5F00001150279505
:1008C0002C3F19B1C8F61C700127015027952C3F09
:1008D000C8F64227499309B10C7010274F73115085
:1008E00027952C3FA8F64695469519B11C7079F0CE
:1008F0000127015027952C3F98F66B5A60F3315031
:1009000009B1B0F600C011E01CBB00271CC03B5071
:100910003195C31BD04011E01CBB0881033C21F181
:100920000B3411F1209171011981110F1213EDCFC8
:100930004A81441F093669F10D3211F0013E29F751
:100940004F7009F0042F009378013F915F914F9110
:100950001F910F912F916F91CCB3C0FD62CFDF91AA
:10096000CF91CFBFCF91189520917801222369F3C1
:10097000109176011123E9F53430EAF130937601D4
:1009800020937201109173013BE0311B309373018E
:1009900032C000917601013064F50AE54F7049F4E8
:1009A0003091000134FD28C000930001CAE5D1E078
:1009B00027C0433049F03091650134FD1DC00093DC
:1009C0006501C6E6D1E01CC03091900134FD14C031
:1009D00000939001C1E9D1E013C0052710E000C0E9
:1009E00000000BB91AC0052710E0221F1DC010E03F
:1009F00021C04AE502C032ED432FC4E1D0E032E02D
:100A00001AB11C605B9A0BB11AB95CE020E865E38F
:100A100020FF05270BB9279517951C3FF0F6669523
:100A2000B8F7B1F720FF05270BB9279517951C3F9D
:100A3000D0F62795179517FF052700001C3F0BB927
:100A4000B0F629913A9519F7037F10917701110FAC
:100A5000C651D0400BB911F01093710111E01CBBCD
:100A600008601AB1137F402F437F54E05A95F1F785
:100A70000BB91AB94BB969CFFC018381813049F4B4
:100A800086EE90E090937501809374018091E6006A
:100A9000089588EF90E0909375018093740183E44A
:100AA0000895FC0180818076803291F49181892FB4
:100AB0008052823010F48FEF0895923249F4809181
:100AC0000E01882329F482E080930E0180E00895CE
:100AD00080E00895DC01E0912F019E2F9F5F20911F
:100AE00030010DC0903209F490E06150921749F046
:100AF000F0E0E15FFE4F8D918083E92F9F5F6623D9
:100B000089F7E0932F010895282FE09151019E2F3E
:100B10009F5F903209F490E080915201981711F490
:100B200080E00895F0E0EF5CFE4F20839093510148
:100B300081E00895DC019091300180912F01981798
:100B400011F480E00895E92FF0E0E15FFE4F80812D
:100B50008C93892F8F5F80933001803211F081E078
:100B600008951092300181E00895DF93CF93CDB7BF
:100B7000DEB728970FB6F894DEBF0FBECDBF13DDEA
:100B800080910D01882331F490915201809151019F
:100B9000981759F18091650184FF27C07091510128
:100BA000909152019E012F5F3F4FD901AE01475FE7
:100BB0005F4F12C0E92FF0E0EF5CFE4F80818C9315
:100BC0009F5F903209F490E01196A417B50721F4C5
:100BD0009093520168E006C06A2F621B971751F785
:100BE00090935201CE010196DADC90910E01992387
:100BF00099F08091900184FF0FC0923021F482E03F
:100C000091E068E003C08AE091E062E0C4DC80919A
:100C10000E01815080930E0128960FB6F894DEBF26
:100C20000FBECDBFCF91DF91089582DC539A84EF40
:100C300091E020E931E0F9013197F1F70197D9F717
:100C400080E88093530185E280935401109255010E
:100C500010925601109257011092580188E080932B
:100C6000590110922F0110923001109251011092EF
:100C7000520110920E0110920D0153980895A3E5B0
:100C8000B1E0FC0187E001900D928150E1F781E035
:100C90000895DC01E3E5F1E087E001900D928150D9
:0A0CA000E1F787E00895F894FFCF14
:0C0CAA005AFFA12000000000020003001F
:00000001FF

+ 2973
- 0
src.with_uart_input/default/linuxlcd.lss
File diff suppressed because it is too large
View File


+ 486
- 0
src.with_uart_input/default/linuxlcd.map View File

@@ -0,0 +1,486 @@
Archive member included because of file (symbol)
c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_exit.o)
c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o (exit)
c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_copy_data.o)
usbdrv.o (__do_copy_data)
c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_clear_bss.o)
usbdrv.o (__do_clear_bss)
Allocating common symbols
Common symbol size file
usbTxBuf 0xb usbdrv.o
usbTxStatus1 0xc usbdrv.o
usbDeviceAddr 0x1 usbdrv.o
usbRxToken 0x1 usbdrv.o
usbInputBufOffset 0x1 usbdrv.o
usbMsgPtr 0x2 usbdrv.o
usbRxLen 0x1 usbdrv.o
usbNewDeviceAddr 0x1 usbdrv.o
usbCurrentTok 0x1 usbdrv.o
usbConfiguration 0x1 usbdrv.o
usbRxBuf 0x16 usbdrv.o
usbTxStatus3 0xc usbdrv.o
Memory Configuration
Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
Address of section .data set to 0x800100
LOAD c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o
LOAD main.o
LOAD 44780.o
LOAD usbdrv.o
LOAD usbdrvasm.o
LOAD avrcdc.o
LOAD c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a
LOAD c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4\libc.a
LOAD c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x00000000 0xcaa
*(.vectors)
.vectors 0x00000000 0x34 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o
0x00000000 __vectors
0x00000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
.progmem.data 0x00000034 0x80 main.o
.progmem.data 0x000000b4 0x44 usbdrv.o
0x000000e6 usbDescriptorDevice
0x000000b4 usbDescriptorString0
0x000000b8 usbDescriptorStringVendor
0x000000d2 usbDescriptorStringDevice
.progmem.data 0x000000f8 0x43 avrcdc.o
0x0000013c . = ALIGN (0x2)
*fill* 0x0000013b 0x1 00
0x0000013c __trampolines_start = .
*(.trampolines)
.trampolines 0x0000013c 0x0 linker stubs
*(.trampolines*)
0x0000013c __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x0000013c __ctors_start = .
*(.ctors)
0x0000013c __ctors_end = .
0x0000013c __dtors_start = .
*(.dtors)
0x0000013c __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000013c 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o
0x0000013c __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000013c 0xc c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000148 0x16 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_copy_data.o)
0x00000148 __do_copy_data
.init4 0x0000015e 0x10 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_clear_bss.o)
0x0000015e __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x0000016e 0x4 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o
*(.init9)
*(.text)
.text 0x00000172 0x2 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o
0x00000172 __vector_22
0x00000172 __vector_24
0x00000172 __vector_12
0x00000172 __bad_interrupt
0x00000172 __vector_6
0x00000172 __vector_3
0x00000172 __vector_23
0x00000172 __vector_25
0x00000172 __vector_11
0x00000172 __vector_13
0x00000172 __vector_17
0x00000172 __vector_19
0x00000172 __vector_7
0x00000172 __vector_5
0x00000172 __vector_4
0x00000172 __vector_9
0x00000172 __vector_2
0x00000172 __vector_21
0x00000172 __vector_15
0x00000172 __vector_8
0x00000172 __vector_14
0x00000172 __vector_10
0x00000172 __vector_16
0x00000172 __vector_18
0x00000172 __vector_20
.text 0x00000174 0x154 main.o
0x00000174 UART_Init
0x00000194 main
0x00000186 USART_vReceiveByte
.text 0x000002c8 0x268 44780.o
0x000002c8 lcdReadData
0x000004ac lcdReadLine
0x000003f8 lcdSetup
0x00000390 lcdCommand
0x00000324 lcdWriteData
0x0000047a lcdWriteLine
0x00000468 lcdGotoXY
0x000004de lcdScroll
.text 0x00000530 0x2b8 usbdrv.o
0x000005a6 usbPoll
0x00000596 usbSetInterrupt3
0x0000059e usbSetInterrupt
0x00000530 usbInit
.text 0x000007e8 0x290 usbdrvasm.o
0x0000081a __vector_1
0x000007e8 usbCrc16
0x00000812 usbCrc16Append
.text 0x00000a78 0x22e avrcdc.o
0x00000ad4 usbFunctionWriteOut
0x00000a78 usbFunctionDescriptor
0x00000b6a usbuartPoll
0x00000aa2 usbFunctionSetup
0x00000b34 usbuartRx
0x00000b08 usbuartTx
0x00000c2a usbuartInit
0x00000c92 usbFunctionRead
0x00000c7e usbFunctionWrite
.text 0x00000ca6 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_exit.o)
.text 0x00000ca6 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_copy_data.o)
.text 0x00000ca6 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_clear_bss.o)
0x00000ca6 . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x00000ca6 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_exit.o)
.text.libgcc 0x00000ca6 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_copy_data.o)
.text.libgcc 0x00000ca6 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_clear_bss.o)
0x00000ca6 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000ca6 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_exit.o)
0x00000ca6 exit
0x00000ca6 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000ca6 0x4 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_exit.o)
*(.fini0)
0x00000caa _etext = .
.data 0x00800100 0xc load address 0x00000caa
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o
.data 0x00800100 0x0 main.o
.data 0x00800100 0x0 44780.o
.data 0x00800100 0x2 usbdrv.o
0x00800100 usbTxLen
.data 0x00800102 0x0 usbdrvasm.o
.data 0x00800102 0xa avrcdc.o
.data 0x0080010c 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_exit.o)
.data 0x0080010c 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_copy_data.o)
.data 0x0080010c 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_clear_bss.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x0080010c . = ALIGN (0x2)
0x0080010c _edata = .
0x0080010c PROVIDE (__data_end, .)
.bss 0x0080010c 0x90
0x0080010c PROVIDE (__bss_start, .)
*(.bss)
.bss 0x0080010c 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr4/crtm48.o
.bss 0x0080010c 0x0 main.o
.bss 0x0080010c 0x0 44780.o
.bss 0x0080010c 0x1 usbdrv.o
.bss 0x0080010d 0x0 usbdrvasm.o
.bss 0x0080010d 0x4d avrcdc.o
.bss 0x0080015a 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_exit.o)
.bss 0x0080015a 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_copy_data.o)
.bss 0x0080015a 0x0 c:/dev/apps/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr4\libgcc.a(_clear_bss.o)
*(.bss*)
*(COMMON)
COMMON 0x0080015a 0x42 usbdrv.o
0x0080015a usbTxBuf
0x00800165 usbTxStatus1
0x00800171 usbDeviceAddr
0x00800172 usbRxToken
0x00800173 usbInputBufOffset
0x00800174 usbMsgPtr
0x00800176 usbRxLen
0x00800177 usbNewDeviceAddr
0x00800178 usbCurrentTok
0x00800179 usbConfiguration
0x0080017a usbRxBuf
0x00800190 usbTxStatus3
0x0080019c PROVIDE (__bss_end, .)
0x00000caa __data_load_start = LOADADDR (.data)
0x00000cb6 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0080019c 0x0
0x0080019c PROVIDE (__noinit_start, .)
*(.noinit*)
0x0080019c PROVIDE (__noinit_end, .)
0x0080019c _end = .
0x0080019c PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment
*(.comment)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0xa0
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 main.o
.debug_aranges
0x00000020 0x20 44780.o
.debug_aranges
0x00000040 0x20 usbdrv.o
.debug_aranges
0x00000060 0x20 usbdrvasm.o
.debug_aranges
0x00000080 0x20 avrcdc.o
.debug_pubnames
0x00000000 0x321
*(.debug_pubnames)
.debug_pubnames
0x00000000 0x40 main.o
.debug_pubnames
0x00000040 0x8c 44780.o
.debug_pubnames
0x000000cc 0x197 usbdrv.o
.debug_pubnames
0x00000263 0xbe avrcdc.o
.debug_info 0x00000000 0x1566
*(.debug_info)
.debug_info 0x00000000 0x22c main.o
.debug_info 0x0000022c 0x457 44780.o
.debug_info 0x00000683 0x8db usbdrv.o
.debug_info 0x00000f5e 0x7d usbdrvasm.o
.debug_info 0x00000fdb 0x58b avrcdc.o
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x7c8
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x155 main.o
.debug_abbrev 0x00000155 0x189 44780.o
.debug_abbrev 0x000002de 0x28d usbdrv.o
.debug_abbrev 0x0000056b 0x14 usbdrvasm.o
.debug_abbrev 0x0000057f 0x249 avrcdc.o
.debug_line 0x00000000 0x108e
*(.debug_line)
.debug_line 0x00000000 0x2d4 main.o
.debug_line 0x000002d4 0x46e 44780.o
.debug_line 0x00000742 0x423 usbdrv.o
.debug_line 0x00000b65 0x1ab usbdrvasm.o
.debug_line 0x00000d10 0x37e avrcdc.o
.debug_frame 0x00000000 0x1d0
*(.debug_frame)
.debug_frame 0x00000000 0x40 main.o
.debug_frame 0x00000040 0x90 44780.o
.debug_frame 0x000000d0 0x60 usbdrv.o
.debug_frame 0x00000130 0xa0 avrcdc.o
.debug_str 0x00000000 0x70a
*(.debug_str)
.debug_str 0x00000000 0x128 main.o
0x161 (size before relaxing)
.debug_str 0x00000128 0x98 44780.o
0x19c (size before relaxing)
.debug_str 0x000001c0 0x32d usbdrv.o
0x417 (size before relaxing)
.debug_str 0x000004ed 0x21d avrcdc.o
0x3e1 (size before relaxing)
.debug_loc 0x00000000 0x6df
*(.debug_loc)
.debug_loc 0x00000000 0x66 main.o
.debug_loc 0x00000066 0x11b 44780.o
.debug_loc 0x00000181 0x3f7 usbdrv.o
.debug_loc 0x00000578 0x167 avrcdc.o
.debug_macinfo
*(.debug_macinfo)
OUTPUT(linuxlcd.elf elf32-avr)
LOAD linker stubs
.debug_ranges 0x00000000 0xc8
.debug_ranges 0x00000000 0x48 main.o
.debug_ranges 0x00000048 0x80 usbdrv.o

BIN
src.with_uart_input/default/main.o View File


BIN
src.with_uart_input/default/usbdrv.o View File


BIN
src.with_uart_input/default/usbdrvasm.o View File


+ 1
- 0
src.with_uart_input/linuxlcd.aps
File diff suppressed because it is too large
View File


+ 1
- 0
src.with_uart_input/linuxlcd.aws View File

@@ -0,0 +1 @@
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA48"/><Files><File00000 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\main.c" Position="-1 72 1629 842" LineCol="116 19" State="Maximized"/><File00001 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\44780.c" Position="88 181 1468 682" LineCol="0 0" State="Maximized"/><File00002 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\avrcdc.c" Position="22 115 1402 616" LineCol="271 1" State="Maximized"/><File00003 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\usbdrv\usbconfig.h" Position="-4 70 1626 840" LineCol="244 0" State="Maximized"/><File00004 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\44780.h" Position="66 159 1446 660" LineCol="0 0" State="Maximized"/><File00005 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\avrcdc.h" Position="110 203 1490 704" LineCol="0 0" State="Maximized"/><File00006 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\usbdrv\usbdrv.h" Position="132 225 1512 726" LineCol="0 0" State="Maximized"/><File00007 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\usbdrv\usbdrvasm.S" Position="154 247 1534 748" LineCol="0 0" State="Maximized"/><File00008 Name="c:\Dropbox\lib\lcd2usb\sources\firmware\usb+uart_sources\usbdrv\usbdrv.c" Position="176 269 1556 770" LineCol="25 17" State="Maximized"/></Files></AVRWorkspace>

+ 134
- 0
src.with_uart_input/main.c View File

@@ -0,0 +1,134 @@
/* -------------------------------------------------------------------------- */
#define BAUD 9600
#define BUTTON_SEL 5
#define BUTTON_DDR DDRC
#define BUTTON_PIN PINC
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <util/setbaud.h>
#include <avr/pgmspace.h>
#include <string.h>
#include "avrcdc.h"
#include "44780.h"
/* -------------------------------------------------------------------------- */
static PROGMEM uint8_t encoding[128] =
{
// 0 1 2 3 4 5 6 7 8 9 a b c d e f
"\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f" // 8
"\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f" // 9
"\x3f\x3f\x3f\xb5\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f" // a
"\x3f\x3f\x3f\xa2\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f" // b
"\xc6\x61\xb2\xe5\xe3\x65\xe4\xb4\x78\xb8\xb9\xba\xbb\xbc\xbd\x6f" // c
"\xbe\xc7\x70\x63\xbf\x79\xb6\xb3\xc4\xc3\xb7\xc1\xc5\xe6\xc0\xc2" // d
"\xb0\x41\xa0\xe1\xe0\x45\xaa\xa1\x58\xa5\xa6\x4b\xa7\x4d\x48\x4f" // e
"\xa8\xb1\x50\x43\x54\xa9\xa3\x42\x62\xae\xa4\xac\xaf\xe2\xab\xad" // f
};
/* -------------------------------------------------------------------------- */
void UART_Init(void)
{
UBRR0L = UBRRL_VALUE;
UBRR0H = 0;
UCSR0B = (1 << RXEN0);
}
uint8_t USART_vReceiveByte()
{
while((UCSR0A&(1<<RXC0)) == 0);
return UDR0;
}
int main(void)