USBasp 2011.05.28. for Atmega328p 16 MHz
authorPeter Henn <Peter.Henn@web.de>
Sat, 29 Mar 2014 20:58:41 +0000 (21:58 +0100)
committerPeter Henn <Peter.Henn@web.de>
Wed, 2 Apr 2014 00:13:12 +0000 (02:13 +0200)
- add F_CPU parameter in Makefile328
- add F_CPU parameter in Makefile and use it as pre-define
- allow predefined F_CPU define in clock.h and
  calculate CLOCK_T_320us from given F_CPU frequency
- allow predefined F_CPU define in usbconfig.h and
  calculate USB_CFG_CLOCK_KHZ from given F_CPU frequency
- add precompiled atmega328 hex file for 16 MHz quartz

bin/firmware/Makefile328
bin/firmware/usbasp.atmega328-16MHz.2011-05-28.hex [new file with mode: 0644]
firmware/Makefile
firmware/clock.h
firmware/usbconfig.h

index 8957fb3..f086528 100644 (file)
@@ -1,8 +1,15 @@
 MCU_TARGET     = atmega328p
 MCU_TARGET     = atmega328p
+F_CPU          = 16000000
 FLASHER        = avrdude -c usbasp -p $(MCU_TARGET)
 
 usbasp: fuses
 FLASHER        = avrdude -c usbasp -p $(MCU_TARGET)
 
 usbasp: fuses
+ifeq ($(F_CPU), 12000000)
        $(FLASHER) -B 1 -U flash:w:usbasp.atmega328-12MHz.2011-05-28.hex
        $(FLASHER) -B 1 -U flash:w:usbasp.atmega328-12MHz.2011-05-28.hex
+else ifeq ($(F_CPU), 16000000)
+       $(FLASHER) -B 1 -U flash:w:usbasp.atmega328-16MHz.2011-05-28.hex
+else
+       $(error setting of F_CPU is not supported.)
+endif
 
 fuses:
        $(FLASHER) -B 300 -U lfuse:w:0xef:m -U hfuse:w:0xd9:m -U efuse:w:0x05:m
 
 fuses:
        $(FLASHER) -B 300 -U lfuse:w:0xef:m -U hfuse:w:0xd9:m -U efuse:w:0x05:m
diff --git a/bin/firmware/usbasp.atmega328-16MHz.2011-05-28.hex b/bin/firmware/usbasp.atmega328-16MHz.2011-05-28.hex
new file mode 100644 (file)
index 0000000..2f8c8cd
--- /dev/null
@@ -0,0 +1,285 @@
+:100000000C945D000C94CA010C947A000C947A0054
+:100010000C947A000C947A000C947A000C947A0078
+:100020000C947A000C947A000C947A000C947A0068
+:100030000C947A000C947A000C947A000C947A0058
+:100040000C947A000C947A000C947A000C947A0048
+:100050000C947A000C947A000C947A000C947A0038
+:100060000C947A000C947A000902120001010080BD
+:100070001909040000000000000012011001FF0037
+:100080000008C016DC050401010200010E03550042
+:10009000530042006100730070001C03770077007A
+:1000A00077002E00660069007300630068006C0032
+:1000B0002E00640065000403090411241FBECFEF65
+:1000C000D8E0DEBFCDBF11E0A0E0B1E0E6EAF1E1AB
+:1000D00002C005900D92A230B107D9F711E0A2E05D
+:1000E000B1E001C01D92AA34B107E1F70E94BF0838
+:1000F0000C94D1080C940000CF93DF9360912801F9
+:10010000635067FD13C080912501CCE0D0E0C81B8F
+:10011000D109C45DDE4F809124018D3209F458C0AD
+:100120008091020187FD9DC01092280180910001FD
+:1001300084FF41C0609101016F3F09F43CC0693008
+:1001400008F470C06850609301018091180198E82C
+:1001500089278093180168E08091020187FD1DC006
+:10016000409126015091270186FF72C0FA01862F27
+:10017000A9E1B1E094919D9331968150D9F7262F52
+:10018000215030E02F5F3F4F240F351F3093270160
+:1001900020932601C62FCC5F50C089E191E00E94D8
+:1001A0007F07682F893008F4A4C08FEF8093010186
+:1001B000CEE1C093000194E183B1837031F491509A
+:1001C000D9F71092290110922301DF91CF91089560
+:1001D000683009F0A9CF83EC809318018AE58093F9
+:1001E0000001109202018881807609F045C09A8151
+:1001F00010922101898181114AC01092220121E2CD
+:1002000031E082E030932701209326018F3FC1F136
+:100210009F81911104C09E81981708F4892F8093C3
+:10022000010182CF109201018091180198E889277D
+:1002300080931801611190CFC4E089E191E00E94A0
+:10024000C601CC3009F4B5CF8FEF80930101B1CF57
+:10025000DA01862FE9E1F1E09D9191938150E1F778
+:100260008ECFCE010E94EF078F3FF9F0882309F46B
+:100270005BCF1092010158CFCE010E94CB05C6CFB3
+:10028000988197FD16C090E890930201C8CF853001
+:1002900091F0863001F18830D1F0893091F021E27F
+:1002A00031E08A3021F180E0ADCF8EE18093000112
+:1002B0003BCF8E81E8CF9093290121E231E080E0AD
+:1002C000A1CF90932B0121E231E080E09BCF2BE284
+:1002D00031E081E097CF8B81813001F18230B1F044
+:1002E000833051F080E090E4909302018FCF81E061
+:1002F00089CFC82FCC5FA1CF911118C086EB90E0B9
+:10030000909327018093260184E0EDCF88E690E06A
+:10031000909327018093260182E1E5CF8AE790E060
+:10032000909327018093260182E1DDCF913051F037
+:100330009230C1F68CE890E09093270180932601DB
+:100340008EE0D1CF8AE990E0909327018093260137
+:100350008CE1C9CFE9E6F0E0808183608083E89A90
+:100360000895A82FB92F80E090E041E050EA609511
+:1003700030E009C02D9182279795879510F084274A
+:100380009527305EC8F36F5FA8F30895EADF8D9379
+:100390009D930895CF93CFB7CF93DF93C395189BC9
+:1003A000E9F7189B0BC0189B09C0189B07C0189B46
+:1003B00005C0189B03C0189B01C089C06F93C091F2
+:1003C0002501DD27C45DDE4F2F9365E5189B03C033
+:1003D0002F916F91E6CF0F931F934F9320E040E151
+:1003E0005F9303B1037000FB27F93F9350E03BE0BC
+:1003F00039C0137040642F77012F5F5F1EC04068C3
+:1004000013B113702F7752501FC0406403B12F7780
+:100410000370D1F15F5F00C023C0406213B12F773A
+:10042000137091F15F5F00C025C003701027515019
+:1004300012F45D5F0000115027952C3F13B1C8F6F0
+:1004400013700127015027952C3FC8F64227499386
+:1004500003B1037010274F73115027952C3FA8F656
+:100460004695469513B1137079F0012701502795F1
+:100470002C3F98F66B5A60F3315003B1B0F600C0D0
+:1004800011E01CBB002717C03B503195C31BD04067
+:1004900011E01CBB0881033CF9F00B34E9F020911A
+:1004A00023011981110F1213EDCF093651F10D32CD
+:1004B00011F0013E39F700932A013F915F914F916E
+:1004C0001F910F912F916F91CCB3C0FD67CFDF913A
+:1004D000CF91CFBFCF91189520912A01222369F3A4
+:1004E00010912801112339F534303AF13093280165
+:1004F00020932401109125013BE0311B309325010D
+:100500001CC0009128010130B4F40AE530910001CB
+:1005100034FD14C000930001C8E1D1E013C00527E9
+:1005200010E000C0000005B91AC0052710E0221F26
+:100530001DC010E021C04AE502C032ED432FC4E1E6
+:10054000D0E032E014B11360289A05B114B953E039
+:1005500020E865E320FF052705B9279517951C3F7F
+:10056000F0F66695B8F7B1F720FF052705B927958E
+:1005700017951C3FD0F62795179517FF0527000004
+:100580001C3F05B9B0F629913A9519F70C7F1091E7
+:100590002901110FC651D04005B911F01093230164
+:1005A00011E01CBB016014B11C7F402F4C7F54E054
+:1005B0005A95F1F705B914B945B97FCF582F48E0DE
+:1005C00080E02091470157FD14C02B98550F880FEC
+:1005D0001C998F5F2D9A36B596B5931B9217E0F351
+:1005E0002D9836B596B5931B9217E0F3415059F705
+:1005F00008952B9AEBCF8EBD0DB407FEFDCF8EB5BF
+:10060000089521E196958795779567952A95D1F775
+:10061000209146012617D9F060934601E0914301ED
+:10062000F09144018DE40995E0914301F09144017A
+:1006300080E00995E0914301F091440180914601E9
+:100640000995E0914301F091440180E009940895F7
+:10065000809145018CBD809142018DBD0895882314
+:10066000A1F08830D0F52EED32E030934401209394
+:100670004301843011F1C8F0863021F030F1873029
+:1006800001F180EC8093470108958BEF92E0909305
+:1006900044018093430181E08093470182E5809388
+:1006A000450181E0809342010895823091F08330CA
+:1006B00041F780E380934701089588E180934701E3
+:1006C000089583E08093470108958CE0809347016B
+:1006D000089580E68093470108952BEF32E0309330
+:1006E0004401209343011092420191E0909347010D
+:1006F000893039F050F4883089F683E580934501DC
+:10070000089582E58093450108958B3021F08C3067
+:1007100029F69093420181E580934501089526B51D
+:100720009091470186B5821B8917E0F3089584B143
+:100730008C6284B92A982D9826B59091470186B588
+:10074000821B8917E0F32A9A26B586B5821B891782
+:10075000E0F32A9880914301909144018B5F92408D
+:1007600019F0109246010895809145018CBD809149
+:1007700042018DBD10924601089584B1837D84B9F4
+:1007800085B1837D85B91CBC0895CF93DF93C0E20A
+:10079000E0914301F09144018CEA0995E091430115
+:1007A000F091440183E50995E0914301F091440102
+:1007B00080E00995D82FE0914301F091440180E059
+:1007C0000995D33549F11CBC26B59091470186B5F2
+:1007D000821B8917E0F32A9A26B586B5821B8917F2
+:1007E000E0F32A9826B586B5821B8917E0F3E091DD
+:1007F0004301F091440182E0EB3FF80731F0C15032
+:1008000059F681E0DF91CF910895809145018CBD2B
+:10081000809142018DBDF3CF80E0DF91CF910895AB
+:10082000CF92DF92EF92FF926B017C010E94010355
+:10083000D701C60181709927AA27BB27880F880F87
+:10084000880FE0914301F091440180620995D7013E
+:10085000C60139E0B695A795979587953A95D1F752
+:10086000E0914301F09144010995D701C601B69585
+:10087000A79597958795E0914301F09144010995DB
+:10088000E0914301F091440180E0FF90EF90DF9010
+:10089000CF900994CF92DF92EF92FF920F931F9324
+:1008A000CF93DF936B017C01C42FD22F0E940103F1
+:1008B000970186010170112722273327802F880F87
+:1008C000880F880FE0914301F091440180640995FD
+:1008D000D701C60159E0B695A795979587955A9582
+:1008E000D1F7E0914301F09144010995D701C60188
+:1008F000B695A79597958795E0914301F0914401AE
+:100900000995E0914301F09144018C2F0995DD2375
+:10091000B9F0CF3791F0D6B5CEE1C701B6010E944C
+:1009200010048F3769F486B58D1B813510F0D6B56C
+:10093000C150C111F2CF81E004C08FE00E94560582
+:1009400080E0DF91CF911F910F91FF90EF90DF90AA
+:10095000CF900895CF92DF92EF92FF920F931F9363
+:10096000CF93DF931F92CDB7DEB76B017C01498334
+:100970000E940103E0914301F09144018CE4099548
+:10098000D701C60179E0B695A795979587957A9591
+:10099000D1F7E0914301F09144010995D701C601D7
+:1009A000B695A79597958795E0914301F0914401FD
+:1009B0000995E0914301F091440180E00995498156
+:1009C0004F3FE9F006B51EE1C701B6010E941004D1
+:1009D0008F3F99F486B5801B813510F006B5115014
+:1009E0001111F2CF81E00F90DF91CF911F910F9104
+:1009F000FF90EF90DF90CF90089580E0F4CF8FE0EC
+:100A00000E94560580E0EFCF1F93CF93DF931F9294
+:100A1000CDB7DEB7182FE0914301F091440180EA91
+:100A200099830995E0914301F09144019981892FBF
+:100A30000995E0914301F0914401812F0995E091DE
+:100A40004301F091440180E00F90DF91CF911F911D
+:100A500009941F93CF93DF9300D0CDB7DEB7182F43
+:100A6000E0914301F091440180EC6A8399830995F8
+:100A7000E0914301F09144019981892F0995E0911A
+:100A80004301F0914401812F0995E0914301F091D8
+:100A900044016A81862F09958EE10E94560580E007
+:100AA0000F900F90DF91CF911F910895882349F007
+:100AB00030E026B596B5921B9035E0F33F5F3813D2
+:100AC000F8CF0895259A23982B9A50E217D05A957B
+:100AD000E9F70895AC0188E605D0842F03D089E6B4
+:100AE00001D0852F0FD028E030E0382780FB869595
+:100AF00006D02A95D1F730FB02D000D06894239815
+:100B00002B9A16F02B98239AE0914801F091490115
+:100B10003197F0F72D9AE3B1E3FBE0914801F091B2
+:100B200049013197F0F72D98089520ECE7DF46F45E
+:100B30002A95E1F780E02AE1E5DF2A95E9F7DECFA3
+:100B400028E030E0DBDF869587F938272A95D1F752
+:100B5000D5DF27F9322772F3D1DFD0CFDB01742F35
+:100B6000B9DF84E2BFDFE1DF8D937A95D1F7089595
+:100B7000DB01742FAFDF83EFB5DF8DE1B3DF84E6F8
+:100B8000B1DF8D91AFDF82E7ADDFCFDF8078D9F7BE
+:100B90007A9589F70895CF93DF93EC0189818130AD
+:100BA00089F1823009F4ABC0833009F461C084302C
+:100BB000B1F1873009F482C0853009F402C1863072
+:100BC00009F4A2C0883009F4D5C0893009F4FFC007
+:100BD0008A3009F42AC18B3009F456C18C3009F4EB
+:100BE00069C18D3009F480C18E3009F483C18F3022
+:100BF00009F4FEC0803109F41FC18F3709F439C1EF
+:100C000080E02DC0329B56C0809103010E942F03CB
+:100C10001092040141980E94970380E020C08091C7
+:100C20000401811110C05B8140E08A81482B662756
+:100C300057FD6095762F40930D0150930E01609300
+:100C40000F01709310019F8180E02E81822B909381
+:100C500012018093110182E0809313018FEF25E050
+:100C600031E03093270120932601DF91CF91089541
+:100C7000E0914301F09144018A8109958093050137
+:100C8000E0914301F09144018B8109958093060125
+:100C9000E0914301F09144018C8109958093070113
+:100CA000E0914301F09144018D8109958093080101
+:100CB00084E0D5CF85E00E942F03AACF8091040164
+:100CC000811110C05B8140E08A81482B662757FD67
+:100CD0006095762F40930D0150930E0160930F01A4
+:100CE000709310019F8180E02E81822B90931201DE
+:100CF0008093110183E0809313018FEFB0CF0E94A6
+:100D0000BD03419A80E0ABCF80910401811110C0F6
+:100D10009B8180E02A81822BAA2797FDA095BA2F7C
+:100D200080930D0190930E01A0930F01B0931001D9
+:100D30003C812D81822F8F7080931601822F807FBE
+:100D400040E1849FC0011124830F911D90931501F0
+:100D50008093140120FD809317019F8180E02E81F4
+:100D6000822B909312018093110181E080931301F3
+:100D70008FEF75CF80910401811110C09B8180E0BD
+:100D80002A81822BAA2797FDA095BA2F80930D0167
+:100D900090930E01A0930F01B093100110921501D2
+:100DA00010921401109216019F8180E02E81822BF7
+:100DB000909312018093110184E0809313018FEFCF
+:100DC0004ECF0E94C5038093050181E048CF81E0AA
+:100DD000809304018A819B81AC81BD8180930D0148
+:100DE00090930E01A0930F01B093100180E037CFD4
+:100DF0009B8180E02A81822BAA2797FDA095BA2F9C
+:100E000080930D0190930E01A0930F01B0931001F8
+:100E10009F8180E02E81822B90931201809311019B
+:100E200085E0809313018FEF1ACF8A8180930301AD
+:100E30001092050181E013CF9B8180E02A81822BF3
+:100E4000AA2797FDA095BA2F80930D0190930E01CC
+:100E5000A0930F01B09310019F8180E02E81822B1F
+:100E6000909312018093110186E0809313018FEF1C
+:100E7000F6CE81E0809305011092060110920701E1
+:100E80001092080184E0EBCE9B8180E02A81822BC6
+:100E900090934901809348012A9A229A83E00E9404
+:100EA00056052A98419880E10E9456050E946205E5
+:100EB00080E0D5CE80EC0E94720580E00E94720531
+:100EC0008AE00E9456052A9A85E00E9456052A98D3
+:100ED00085E00E94560584B1837D84B985B1837D08
+:100EE00085B9419A80E0BBCE0E94950580930501AB
+:100EF00081E0B5CE8A810E94720580E0B0CE0F936A
+:100F00001F93CF93DF93582F792F062F2091130132
+:100F1000322F3250323050F0253009F443C00FEFF9
+:100F2000802FDF91CF911F910F910895662391F14A
+:100F300080910D0190910E01A0910F01B0911001CF
+:100F4000C52FD72F10E01CC00E9404058883809114
+:100F50000D0190910E01A0910F01B0911001019629
+:100F6000A11DB11D80930D0190930E01A0930F015F
+:100F7000B09310011F5F2196101751F020911301BB
+:100F8000223011F7BC01CD010E9410048883DFCF0D
+:100F9000083030F610921301802FDF91CF911F910E
+:100FA0000F910895462F682F80910D0190910E01A9
+:100FB0000E94AE0580910D0190910E01A0910F014C
+:100FC000B0911001800F911DA11DB11D80930D01E5
+:100FD00090930E01A0930F01B0931001A1CFFF9247
+:100FE0000F931F93CF93DF93382F792F162F2091D4
+:100FF0001301213071F0243061F0263009F490C0E3
+:10100000FF24FA948F2DDF91CF911F910F91FF90C4
+:101010000895112309F4B1C080910D0190910E0142
+:10102000A0910F01B0911001C32FD72F00E0F12C38
+:1010300050C02091140130911501232B09F053C0A9
+:1010400021E04881BC01CD010E944A042091110198
+:101050003091120121503109309312012093110176
+:10106000232BE9F4109213018091160181FF38C0FF
+:101070002091170130E080911401909115012817FB
+:10108000390771F160910D0170910E0180910F018E
+:101090009091100148810E94AA04FF24F39480914A
+:1010A0000D0190910E01A0910F01B09110010196D8
+:1010B000A11DB11D80930D0190930E01A0930F010E
+:1010C000B09310010F5F2196011709F49BCF209177
+:1010D0001301213009F4ADCF68810E942905B6CFF4
+:1010E000FF24F394DCCF20E04881BC01CD010E94B5
+:1010F0004A04809117018150809317018111A6CF76
+:1011000060910D0170910E0180910F01909110017D
+:1011100048810E94AA04809114018093170196CF00
+:10112000462F682F80910D0190910E010E94B80505
+:1011300080910D0190910E01A0910F01B0911001CD
+:10114000810F911DA11DB11D80930D0190930E0182
+:10115000A0930F01B09310018091110190911201A1
+:10116000811B91099093120180931101892B29F41D
+:1011700010921301FF24F39445CFF12C43CF1BB8F9
+:1011800015B88BEF8AB98FEF84B914B883E087B9AB
+:101190009EEF98B985BD0E94AA0178940E947C00B8
+:0611A000FDCFF894FFCF23
+:0211A6005AFFEE
+:00000001FF
index e57be2f..fd422b1 100755 (executable)
@@ -3,16 +3,19 @@
 #   20061119   Thomas Fischl        original
 #   20061120   Hanns-Konrad Unger   help: and TARGET=atmega48 added
 #   20140308   Peter Henn           TARGET=atmega328 added
 #   20061119   Thomas Fischl        original
 #   20061120   Hanns-Konrad Unger   help: and TARGET=atmega48 added
 #   20140308   Peter Henn           TARGET=atmega328 added
+#   20140329   Peter Henn           F_CPU parameter added
 #
 
 # TARGET=atmega8    HFUSE=0xc9  LFUSE=0xef
 # TARGET=atmega48   HFUSE=0xdd  LFUSE=0xff
 #
 
 # TARGET=atmega8    HFUSE=0xc9  LFUSE=0xef
 # TARGET=atmega48   HFUSE=0xdd  LFUSE=0xff
-# TARGET=atmega328  HFUSE=0xd9  LFUSE=0xef EFUSE=0x05
+# TARGET=atmega328  HFUSE=0xd9  LFUSE=0xef EFUSE=0x05 F_CPU=12000000
+# TARGET=atmega328  HFUSE=0xd9  LFUSE=0xef EFUSE=0x05 F_CPU=16000000
 # TARGET=at90s2313
 TARGET=atmega328p
 HFUSE=0xd9
 LFUSE=0xef
 EFUSE=0x05
 # TARGET=at90s2313
 TARGET=atmega328p
 HFUSE=0xd9
 LFUSE=0xef
 EFUSE=0x05
+F_CPU=16000000
 
 # ISP=bsd      PORT=/dev/parport0
 # ISP=ponyser  PORT=/dev/ttyS1
 
 # ISP=bsd      PORT=/dev/parport0
 # ISP=ponyser  PORT=/dev/ttyS1
@@ -38,11 +41,11 @@ help:
 ifdef EFUSE
        @echo "       EFUSE=${EFUSE}"
 endif
 ifdef EFUSE
        @echo "       EFUSE=${EFUSE}"
 endif
-       @echo "       CLOCK=12000000"
+       @echo "       CLOCK=${F_CPU}"
        @echo "       ISP=${ISP}"
        @echo "       PORT=${PORT}"
 
        @echo "       ISP=${ISP}"
        @echo "       PORT=${PORT}"
 
-COMPILE = avr-gcc -Wall -O2 -Iusbdrv -I. -mmcu=$(TARGET) # -DDEBUG_LEVEL=2
+COMPILE = avr-gcc -Wall -O2 -Iusbdrv -I. -mmcu=$(TARGET) -DF_CPU=$(F_CPU)L # -DDEBUG_LEVEL=2
 
 OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o isp.o clock.o tpi.o main.o
 
 
 OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o isp.o clock.o tpi.o main.o
 
index 0183297..38e4331 100644 (file)
 #ifndef __clock_h_included__
 #define        __clock_h_included__
 
 #ifndef __clock_h_included__
 #define        __clock_h_included__
 
+#ifndef F_CPU
 #define F_CPU           12000000L   /* 12MHz */
 #define F_CPU           12000000L   /* 12MHz */
+#endif
 #define TIMERVALUE      TCNT0
 #define TIMERVALUE      TCNT0
-#define CLOCK_T_320us  60
+#define CLOCK_T_320us  (320 * (F_CPU/1000000L) / 64)
 
 #ifdef __AVR_ATmega8__
 #define TCCR0B  TCCR0
 
 #ifdef __AVR_ATmega8__
 #define TCCR0B  TCCR0
index 203239e..0903490 100644 (file)
@@ -21,7 +21,6 @@ the newest features and options.
 */
 
 /* ---------------------------- Hardware Config ---------------------------- */
 */
 
 /* ---------------------------- Hardware Config ---------------------------- */
-
 #define USB_CFG_IOPORTNAME      B
 /* This is the port where the USB bus is connected. When you configure it to
  * "B", the registers PORTB, PINB and DDRB will be used.
 #define USB_CFG_IOPORTNAME      B
 /* This is the port where the USB bus is connected. When you configure it to
  * "B", the registers PORTB, PINB and DDRB will be used.
@@ -35,7 +34,11 @@ the newest features and options.
  * This may be any bit in the port. Please note that D+ must also be connected
  * to interrupt pin INT0!
  */
  * This may be any bit in the port. Please note that D+ must also be connected
  * to interrupt pin INT0!
  */
+#ifdef F_CPU
+#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
+#else
 #define USB_CFG_CLOCK_KHZ 12000
 #define USB_CFG_CLOCK_KHZ 12000
+#endif
 /* Clock rate of the AVR in MHz. Legal values are 12000, 16000 or 16500.
  * The 16.5 MHz version of the code requires no crystal, it tolerates +/- 1%
  * deviation from the nominal frequency. All other rates require a precision
 /* Clock rate of the AVR in MHz. Legal values are 12000, 16000 or 16500.
  * The 16.5 MHz version of the code requires no crystal, it tolerates +/- 1%
  * deviation from the nominal frequency. All other rates require a precision