/Designs/Tools/reflow02/SW/process.h
0,0 → 1,12
 
// reflow soldering profile difinition
#define PREHEAT_SLOPE 1.0 // preheat ramp up time
#define SOAK_TEMP 150 // soak temperature
 
#define SOAK_TIME 100 // time to soak
 
#define SOLDER_SLOPE 2.5
#define SOLDER_TEMP 210
#define SOLDER_TIME 5
 
 
/Designs/Tools/reflow02/SW/reflow.hex
0,0 → 1,460
:100000000A308A00B02A0000FF00030E8301A1001D
:100010000A08A0008A010408A2007708A300780853
:10002000A4007908A5007A08A600831383128C30F7
:100030008400801C1D288C1832288B1E21280B1947
:100040003528220884002308F7002408F800250832
:10005000F9002608FA0020088A00210E8300FF0E0E
:100060007F0E09008A110A12932D8A110A12202C80
:100070000A108A100A11820728340C34013406341D
:10008000C822412A49274710C62049265529C510AC
:100090000000DE01DD01DF015F081F3C031C622858
:1000A0001F151F19512883161E088312DD071E080D
:1000B00003181E0FDE071030F700F70B5D28000055
:1000C000DF0A4C285E0CFA005D0CF900FA0CF90C02
:1000D000FA0CF90CFA0CF90CFA0CF90C0730FA05C9
:1000E0007908F8007A08F90008008E30F7005E08F9
:1000F000F8005D08F900FA01F808031D892879085D
:10010000F800F9010830F702F808031D8928F70103
:1001100091280310F81B9028F90DF80DF703892892
:10012000F81308006A0803190229F2006E0803197F
:100130000229F2070318A3287F30F202031C0229C8
:1001400003190229A7288130F2070318022972082F
:10015000F700F801F901FA016B08F600F6176C08D0
:10016000F5006D08F4001830F200F301741CD0287B
:100170007108FA07031CC228F90A031DC228F80AED
:100180000319F3177008F907031CC928F80A0319A3
:10019000F3176F08EC00EC176C08F8070318F31757
:1001A000F30DF80CF90CFA0CF60CF50CF40C03102A
:1001B000F20BB5280130F70703180229F81BE728CE
:1001C000F60DFA0DF90DF80DF70303190229F61FC4
:1001D000F828FA0A031DF828F90A031DF828F80A76
:1001E000031DF828F80CF90CFA0CF70A0319022978
:1001F0006B08F3006F08F306F31F0029F8170629B0
:10020000F8130629F701F801F901FA010800803016
:100210008318E806ED01EE016408EC006808EC06BE
:1002200063080319F729EB00F70067080319002A90
:10023000EB0203199C29031C5A296808F100F117E5
:100240006908F0006A08EF00EE010310F10CF00CF1
:10025000EF0CEE0CEB0B2429EC1F31296D14142A42
:100260006D106B106D16663084008313292A6D1291
:10027000EC1B44296B1C4F29F10CF00CEF0CEE0C1D
:10028000F70A03190F2A4F29F11B52290310EE0D0B
:10029000EF0DF00DF10DF70303190F2A44296D1727
:1002A000BC296D136408EC00EC1F5829F117082ACB
:1002B000F113082A6708EB00F7006308EB026408F3
:1002C000F100F1176508F0006608EF00EE01031079
:1002D000F10CF00CEF0CEE0CEB0B6629EC1F732904
:1002E000ED14142AED106B10ED166A3084008313A0
:1002F000292AED12EC1B86296B1C9129F10CF00CBC
:10030000EF0CEE0CF70A03190F2A9129F11B94291F
:100310000310EE0DEF0DF00DF10DF70303190F2A89
:100320008629ED17BC29ED136808EC00EC1F9A290B
:10033000F117082AF113082A6808F100F117690873
:10034000F0006A08EF00EC1FA929F1136D15142ABB
:100350006D11EE016B10663084008313292AEC1BAB
:10036000D2296408EC006B1CBC29F10CF00CEF0CDA
:10037000EE0CF70A03190F2AEE1FCD29EF0A031D11
:10038000CD29F00A031DCD29F10A031DCD29F10C59
:10039000F00CEF0CF70A03190F2A6D1B5129ED1B06
:1003A0009329F1298030F106F11FDA29142A68080F
:1003B000EC00E7296408EC00F108031DE729F008C8
:1003C000031DE729EF08031DE729F701082AF11BA0
:1003D000F1290310EE0DEF0DF00DF10DF70BE729EC
:1003E0000F2AEC1FF529F117082AF113082A6708CC
:1003F000F7006808F1006908F0006A08EF00082AB1
:100400006308F7006408F1006508F0006608EF0073
:100410007108F8007008F9006F08FA00472AF70120
:10042000F801F901FA01472AEE01EF09F009F10993
:10043000EE09EE0A031D222AEF0A031D222AF00A02
:100440000319F10A6D183029ED1872296D19A829C0
:10045000D7290008EF07031C332AF00A031D332AAB
:10046000F10A03196B1484030008F007031C3B2AEC
:10047000F10A03196B1484030008801F803AF10706
:1004800003186B146D1A3729ED1A7929AF29080062
:1004900049207908FA007808DD007908DE00752027
:1004A0007030ED009830EC002C30EB007E30EA002C
:1004B0007A08F1007908F0007808EF007708EE007C
:1004C00092207708DD007808DE007908DF007A08DE
:1004D000E000E2010408E1006210831B621483144F
:1004E0007A08E6007908E5007808E4007708E30078
:1004F000CD30EA002C30E9001330E8008730E70007
:1005000007216108840083136218831708006008BC
:10051000F8015F0203188F2A5F08F7009B2AF70192
:100520000830E100DF0DF70D600877020318F700CF
:10053000F80DE10B922A08008316861383128613A6
:100540000830F800A32A0000F817B42AF813EA0CC0
:1005500003188617031C86137817B42A7813F80B30
:10056000A72AB22A000086171C308400840BB62A02
:10057000B92AF81BA62A781BAE2A080078085D085D
:10058000DF006430E00087227708DD007808303033
:10059000031DD12ADE1CD82ADE19D82A5E1A203083
:1005A000D42ADE115E125E14F8077808EA009C2255
:1005B0005D08DF000A30E00087227708DD00780858
:1005C0003030031DE92ADE19ED2A5E1CED2A5E1A81
:1005D0002030F8077808EA009C223030DD075D08FB
:1005E000EA009C2208006A08B63CEA00FA016B089F
:1005F000EE00EB170310EB0CEC0CED0CFA0CF90C05
:10060000F80CF70CEA0BFA2AEE1F112BF709F80980
:10061000F909FA09F70A0319F80A0319F90A03197B
:10062000FA0A0800F701F801F901FA01F201F301F1
:10063000F401F501710870046F046E040319502B66
:100640002030F6000310EA0DEB0DEC0DED0DF20D70
:10065000F30DF40DF50D71087502031D392B7008AB
:100660007402031D392B6F087302031D392B6E08AA
:100670007202031C4A2B6E08F2026F08031C6F0FF4
:10068000F3027008031C700FF4027108031C710F51
:10069000F5020314F70DF80DF90DFA0DF60B222BE8
:1006A00072308400831308000408E2006108E4004B
:1006B0000319732B6008ED005F08EC005E08EB0087
:1006C0005D08EA00F101F0012030EF008230EE0019
:1006D00092207A08E0007908DF007808DE007708C9
:1006E000DD00E40B5A2B6008ED005F08EC005E08AB
:1006F000EB005D08EA00F3227A08E0007908DF00E9
:100700007808DE007708DD00E01F932BE203E21695
:10071000DD09DE09DF09E009DD0A0319DE0A031934
:10072000DF0A0319E00A3B30E9009A30E800CA30DA
:10073000E700E6010A30E40061080319E20A6008F4
:10074000ED005F08EC005E08EB005D08EA00690858
:10075000F1006808F0006708EF006608EE00122359
:100760000008DD00840A0008DE00840A0008DF00BB
:10077000840A0008E000FD308407F708031DD32B2E
:10078000610A64020319D32B62080319D52B0F39B0
:1007900064020319CD2B0318052CE21B052C621BE8
:1007A000D52B2030012C2030E205E21EE32BE21293
:1007B0006108031DE2037708E2002D30EA009C2265
:1007C0006208F700E20161086402031DF12B77085B
:1007D000E2002E30EA009C226208F7002030E20599
:1007E00000303030E21E012CE2126108031DE203EA
:1007F0007708E2002D30EA009C226208F700E2014F
:100800003030F7077708EA009C226908ED00680895
:10081000EC006708EB006608EA00F101F001EF0167
:100820000A30EE0012237A08E9007908E800780817
:10083000E7007708E600E40B9F2B8A110A127F2D50
:100840002C082E020318312CA812280883168700C2
:100850008312871228132808831687008312071330
:100860003D2CA812280883168700831287162813A8
:100870002808831687008312071703102D0D2E02F8
:100880000318492C281228088316870083120712A0
:100890004F2C2812280883168700831207162E086B
:1008A000643C0319562CAE08031D882D48227A0893
:1008B000DC007908DB007808DA007708D9008314B7
:1008C0005C08E6005B08E5005A08E4005908E3000C
:1008D0003208EA003108E9003008E8002F08E70094
:1008E00007217708DD007808DE007908DF007A0844
:1008F000E0006008E4005F08E3005E08E2005D08D5
:10090000E1001730E800B730E7005130E6007D30F5
:10091000E500610803194E2DED00650803194E2D01
:10092000ED02031C982C7F30ED0703184E2D9E2CF2
:100930008130ED02031C4E2D03194E2D6D08F7007A
:10094000F801F901FA01EC016208EB00EB1763080A
:10095000EA006408E9001930ED006808E9020318AC
:10096000C12C0130EA020318C12CEB020318C12C80
:10097000EC020318C12CEC0AEB0AEA0A6808E90742
:10098000F32C6708EA020318DC2C0130EB02031891
:10099000DC2CEC020318DC2CEC0AEB0A6708EA07F3
:1009A0006808E907031CF32CEA0A031DF32CEB0A81
:1009B000031DF32CEC0AF32C66088038EB020318B5
:1009C000F22C0130EC020318F22CEC0A6608803895
:1009D000EB076708EA07031CD02CEB0A031DD02C99
:1009E000EC0AD02C7A14ED0BF62C012D0310E90D36
:1009F000EA0DEB0DEC0D0310FA0DF90DF80DEE0DEF
:100A0000AD2C6E1C092D0310F80CF90CFA0CEE0C31
:100A10000C2DF70303194E2DEE1B352D0310E90D98
:100A2000EA0DEB0DEC0D6808E9020318212D0130E9
:100A3000EA020318212DEB020318212DEC02031CFE
:100A4000442D6708EA0203182C2D0130EB0203182D
:100A50002C2DEC02031C442D66088038EB02031891
:100A6000352D0130EC02031C442DFA0A031D442DE0
:100A7000F90A031D442DF80A031D442DF70A031932
:100A80004E2DF80CF90CFA0C6208ED006608ED0624
:100A9000ED1F4C2DF817522DF813522DF701F801C8
:100AA000F901FA017A08B6007908B5007808B400AF
:100AB0007708B3005C08B2005B08B1005A08B000C8
:100AC0005908AF002A08DD000130DE00BE222030C8
:100AD000EA009C222B08DD000130DE00BE2220301F
:100AE000EA009C22893084005C08E0005B08DF009B
:100AF0005A08DE005908DD000330E100542B203095
:100B0000EA009C220D30EA009C220A30EA009C2276
:100B10002E08C73C031C8E2DAE0A8F2DAE010B1183
:100B20008A110A122128DA012930D900B70A3708B8
:100B3000183C0318CA2DB7010230590784008313EB
:100B40005A188317800A801BCA2D00083B3C0318E3
:100B5000CA2D02305907840083135A188317800165
:100B600001305907840083135A188317800A801BA9
:100B7000CA2D00083B3C0318CA2D013059078400D8
:100B800083135A18831780015908840083135A1855
:100B90008317800A8C108A110A12212850294524B3
:100BA000C52054002328D222C822412A0D05000066
:100BB000A519AE18E60843102000A518AE18E608DF
:100BC000C31773102000D327C12520102010000167
:100BD000A329CF20CB060A00A519AE18E6084310BA
:100BE0002000D3274C2245290001A3294F26C422E7
:100BF000D2060A00A519AE18E60843102000A51871
:100C0000AE18E608C31773102000A519AE18E60841
:100C100043102000D2224626CF2BA021CF265026DB
:100C2000452A4500C3274F26492747100D050001D7
:100C3000A519AE18E60843102000A518AE18E6085E
:100C4000C317731020000634093409340634803485
:100C50008034803480340034A8122808831687003A
:100C60008312871628132808831687008312071714
:100C700083168113091283129412A812280883166E
:100C80008700831228162808831687008312A8116C
:100C900028088316870001308312940000308316E1
:100CA00094000108C0390538810085308312900016
:100CB0004830F80006389200F93083169200073069
:100CC0009C00050885000330F700F70B652E1C0813
:100CD00083120D1383169D01C03083128B0483167B
:100CE0008C1483128B1683161F149F101F159F11CF
:100CF0001F1383121F179F1383169F1783121F142E
:100D00000030F8001F08C73978049F008A150A12BE
:100D1000CF2A4D3084008313000803199D2E013023
:100D2000F800F701F70B922EF80B912E4A30F700DE
:100D3000F70B982E9B2E800B8F2E08000808F03999
:100D4000D50053080F3955048800071528112808C5
:100D500083168700000083120711281128088316C4
:100D6000870083120800D108031DB82E8710B92E02
:100D70008714A8102808831687008312D20E520801
:100D8000D3009E26D20E5208D3009E260D30F700C7
:100D9000F70BC82E0800C830CD008926F030831626
:100DA000880583128710A8102808831687008312ED
:100DB000071128112808831687008312B801380804
:100DC000023C031CEB2E0230CD0089260330D300F9
:100DD0009E26B80ADF2E0D30F700F70BED2E0230FD
:100DE000D3009E260D30F700F70BF42EB80138081B
:100DF000023C031C072F38083820B900D1013908FC
:100E0000D200B3260230CD008926B80AF72E8A1503
:100E10000A12DE2A831603178C170C140000000038
:100E200083128C080319312F0D080313B800031720
:100E30000F080313B90003170C080313BA0001309D
:100E4000D1003A08D200B326380803178D000313E7
:100E5000390803178F008D0A03198F0A03130A2F0D
:100E6000031703138A150A12F22A83168C10023014
:100E700083123B07840083133C18831780013B08CF
:100E8000840083133C188317800101303B078400E2
:100E900083133C188317800183168C148312080077
:100EA00001304D02CF004E08023C031D592F403047
:100EB000CF074F088038D000D1015008D200B326A8
:100EC00008004C080C3A03196C2F063A0319742FCA
:100ED000073A03197A2F7F2FD1010130D200B326B0
:100EE0000230CD0089268B2F0130CD000230CE009C
:100EF00050278B2F0130CD00CE0050278B2F4C0870
:100F00001F3C031C852F0730CC050130D1004C0855
:100F1000D200B3268B2F0800831603178C170C14EE
:100F20000000000083120C087F390319D02F03132F
:100F3000BB0003170D080313BC0003170F080313AE
:100F4000BD003B08CC0061273C0803178D0003134C
:100F50003D0803178F0083168C170C140000000047
:100F600083120C0D0E0D7F390319D02F0313BB0014
:100F700003170D080313BC0003170F080313BD006C
:100F80003B08CC0061273C0803178D0003133D0884
:100F900003178F008D0A03198F0A03138C2F031771
:100FA00003130800F701F8013C0803103D18F70788
:100FB000F70CF80CBD18F707F70CF80C3D19F707FC
:100FC000F70CF80CBD19F707F70CF80C3D1AF707EA
:100FD000F70CF80CBD1AF707F70CF80C3D1BF707D8
:0E0FE000F70CF80CBD1BF707F70CF80C080017
:10100000831603178C170C140000000083120C08C1
:101010007F39031954280313BB0003170D0803136A
:10102000BC0003170F080313BD00A7018B1BA717F4
:101030008B133B08EA008A119C228A15A71B8B1789
:101040003C0803178D0003133D0803178F00831618
:101050008C170C140000000083120C0D0E0D7F394C
:10106000031954280313BB0003170D080313BC0016
:1010700003170F080313BD00A7018B1BA7178B13C2
:101080003B08EA008A119C228A15A71B8B173C0893
:1010900003178D0003133D0803178F008D0A0319F2
:1010A0008F0A031300280317031308004508CC0018
:1010B0004908CC06CC1F612803110310C51B03147B
:1010C00094284508CC004808CD004408CD020319F7
:1010D0006F28CC1F94280308013A830094284908FC
:1010E000CD004508CD0203197B28CC1F94280308A6
:1010F000013A830094284A08CD004608CD0203191E
:101100008728CC1F94280308013A830094284B08B1
:10111000CD004708CD0203199328CC1F942803085B
:10112000013A83009428031008008314A7018B1B45
:10113000A7178B133608E6003508E5003408E400ED
:101140003308E3003E08EA003D08E9003C08E800F7
:101150003B08E7008A1107218A15A71B8B177A081D
:10116000C3007908C2007808C1007708C0004308AE
:10117000C7004208C6004108C5004008C400CB01B2
:10118000CA01C901C8015620031CCC283C303F07C6
:10119000AC006430AD00CE28AC01AD0108000408FD
:1011A000C4004308C6000319F628A7018B1BA71724
:1011B0008B134208ED004108EC004008EB003F08AB
:1011C000EA00F101F0012030EF008230EE008A11D8
:1011D00092208A15A71B8B177A08C2007908C100D4
:1011E0007808C0007708BF00C60BD528A7018B1B65
:1011F000A7178B134208ED004108EC004008EB00F4
:101200003F08EA008A11F3228A15A71B8B177A0878
:10121000C2007908C1007808C0007708BF00C21F6B
:101220001E29C403C416BF09C009C109C209BF0AE7
:101230000319C00A0319C10A0319C20A3B30CB00C3
:101240009A30CA00CA30C900C8010A30C600430833
:101250000319C40AA7018B1BA7178B134208ED00C3
:101260004108EC004008EB003F08EA004B08F100A1
:101270004A08F0004908EF004808EE008A111223DE
:101280008A15A71B8B170008BF00840A0008C0003E
:10129000840A0008C100840A0008C200FD308407E7
:1012A000F708031D6629430A460203196629440804
:1012B000031968290F394602031960290318A02968
:1012C000C41BA029441B682920309A292030C4055A
:1012D000C41E7829C4124308031DC4037708C40040
:1012E0002D30CC008A1161278A154408F700C4010B
:1012F00043084602031D88297708C4002E30CC001D
:101300008A1161278A154408F7002030C40500308F
:101310003030C41E9A29C4124308031DC403770841
:10132000C4002D30CC008A1161278A154408F700CB
:10133000C4013030F7077708CC008A1161278A157D
:10134000A7018B1BA7178B134B08ED004A08EC0075
:101350004908EB004808EA00F101F001EF010A300A
:10136000EE008A1112238A15A71B8B177A08CB006F
:101370007908CA007808C9007708C800C60B2A296E
:101380000800831603178C170C14000000000318C4
:10139000F22983120C087F390313C00003170D08CC
:1013A0000313C10003170F080313C2004008CC0049
:1013B0008A1161278A15410803178D00031342081B
:1013C00003178F0083168C170C1400000000831283
:1013D0000313BF0BEC29EF2983160317F229132AF5
:1013E0008316031783120C0D0E0D7F390313C000F3
:1013F00003170D080313C10003170F080313C200DE
:101400004008CC008A1161278A15410803178D0016
:101410000313420803178F008D0A03198F0A031064
:101420000313BF0BC12908007808A7018B1BA7175E
:101430008B133B08DF006430E0008A1187228A1595
:10144000A71B8B177708BB0078083030031D2F2AA5
:10145000BC1C382ABC19382A3C1A2030322ABC114C
:101460003C123C14F8077808CC008A1161278A15D1
:10147000A7018B1BA7178B133B08DF000A30E00086
:101480008A1187228A15A71B8B177708BB0078085B
:101490003030031D512ABC19572A3C1C572A3C1ACC
:1014A0002030F8077808CC008A1161278A1530307F
:1014B000BB073B08CC008A1161278A150800A701E9
:1014C0008B1BA7178B138A1148228A15A71B8B1712
:1014D0007708BF007808C0007908C1007A08C20008
:1014E0003E08C7003D08C6003C08C5003B08C400D4
:1014F0004208CB004108CA004008C9003F08C800A4
:101500005620031C862AAC01AD018A2A4630AC0065
:101510005030AD0008003D083E068039C000BD1FB8
:10152000932ABD09BD0ABE1F972ABE09BE0A3E08FE
:10153000F8013D0203189F2A3D08F700AB2AF70186
:101540000830BF00BD0DF70D3E0877020318F70005
:10155000F80DBF0BA22AC01FAF2AF809F80A08002D
:10156000840183131F308305831686138312861725
:10157000AC01AD01B201B101B001AF01B601B501DD
:10158000B401B301B70183161F149F141F159F11D7
:1015900007309C00FF308312A8008A112C2E8A1578
:1015A000A812280883168700831287162813280894
:1015B00083168700831207178A11CB2E8A15D10153
:1015C0004830D2008A11B3268A150230CD008A1124
:1015D00089268A15233003178D0006308F008A1163
:1015E00003130A2F8A15D1010330D2008A11B326C2
:1015F0008A150230CD008A1189268A15BC0129304E
:10160000BB008A1135278A150230B8009630CD000C
:101610008A1189268A15B80B062BBC012930BB001C
:101620008A1135278A150130CD000230CE008A118B
:1016300050278A15CE3003178D0005308F008A1190
:1016400003138C278A15D23003178D0005308F00C5
:1016500003130020BE01BD01BC017F30BB00BF01F0
:1016600095200130CD00CE008A1150278A15A701A0
:101670008B1BA7178B138A1148228A15A71B8B1760
:101680007708BB007808BC007908BD007A08BE0066
:10169000023084007A08C2007908C1007808C000CE
:1016A0007708BF000130C300CF20DA3003178D0068
:1016B00005308F00031404300313BF00C1210C3028
:1016C000CD000130CE008A1150278A152A08BB00B0
:1016D0000130BC0014223A30CC008A1161278A15EF
:1016E0002B08BB000130BC0014220A30CD000230B0
:1016F000CE008A1150278A15893084003608C2002E
:101700003508C1003408C0003308BF000130C300F1
:10171000CF20DF3003178D0005308F000314063013
:101720000313BF00C121C830CD008A1189268A1554
:10173000AA1BB12B2A08033C0318B12BAC01AD0145
:101740000130CD000230CE008A1150278A1540307A
:1017500003178D0000308F008A1103138C278A1520
:10176000B02BA7018B1BA7178B138A1148228A1550
:10177000A71B8B177708BB007808BC007908BD0051
:101780007A08BE00C7003D08C6003C08C5003B08FB
:10179000C400CB01CA011630C9008630C8005620EB
:1017A00003182A2BBC012930BB008A1135278A1562
:1017B0000130B9003908BC003C30BD008A11D22785
:1017C0008A157808643CBA000C30CC008A11612775
:1017D0008A150130CD000230CE008A1150278A15BB
:1017E000E33003178D0005308F008A1103138C2717
:1017F0008A15E83003178D0005308F000313002091
:10180000BA08031D062CB9080319872CBE01BD01B7
:101810001630BC008630BB005F220130CD00CE0008
:101820008A1150278A15A7018B1BA7178B138A11C2
:1018300048228A15A71B8B177708BB007808BC00C5
:101840007908BD007A08BE00023084007A08C20020
:101850007908C1007808C0007708BF000130C300D4
:10186000CF20EE3003178D0005308F0003140430B5
:101870000313BF00C1212B08BA02BA1F412C3B3011
:10188000BA002A08BC003C30BD008A11D2278A1554
:101890007808643CF8002B087802BC00BD003C309E
:1018A000BE008B227808B9002A08BC003C30BD007D
:1018B0008A11D2278A157808643CF8002B08780230
:1018C000BB003908BC003C30BD008A11D2278A1504
:1018D00078083B02BA000930CD000130CE008A11F1
:1018E00050278A153908BB000130BC0014223A3059
:1018F000CC008A1161278A153A08BB000130BC0070
:101900001422C830CD008A1189268A15002CBC010A
:101910002930BB008A1135278A150C30CC008A117A
:1019200061278A150130CD000230CE008A11502780
:101930008A15F13003178D0005308F008A110313CB
:101940008C278A15F53003178D0005308F0003139F
:101950000020BE01BD012030BC008030BB000A3039
:10196000BF0095200130CD00CE008A1150278A1586
:10197000A7018B1BA7178B138A1148228A15A71B57
:101980008B177708BB007808BC007908BD007A087F
:10199000BE00023084007A08C2007908C1007808CD
:1019A000C0007708BF000130C300CF20FC30031710
:1019B0008D0005308F00031404300313BF00C121D4
:1019C0000C30CD000130CE008A1150278A152A082C
:1019D000BB000130BC0014223A30CC008A116127D0
:1019E0008A152B08BB000130BC0014220A30CD0040
:1019F0000230CE008A1150278A15893084003608BB
:101A0000C2003508C1003408C0003308BF000130EF
:101A1000C300CF20013003178D0006308F00031460
:101A200006300313BF00C121C830CD008A118926BA
:101A30008A15AA1B322D2A08023C0318322DAC014C
:101A4000AD010130CD000230CE008A1150278A1539
:101A5000403003178D0000308F008A1103138C274C
:101A60008A15312DA7018B1BA7178B138A114822CA
:101A70008A15A71B8B177708BB007808BC0079086C
:101A8000BD007A08BE00C7003D08C6003C08C5007E
:101A90003B08C400CB01CA015230C9008630C800DF
:101AA00056200318A92CBA08031D592DB90803198B
:101AB000DA2DBE01BD015230BC008630BB005F2272
:101AC0000130CD00CE008A1150278A15A7018B1B4B
:101AD000A7178B138A1148228A15A71B8B17770823
:101AE000BB007808BC007908BD007A08BE0002304F
:101AF00084007A08C2007908C1007808C00077081D
:101B0000BF000130C300CF20073003178D0006301F
:101B10008F00031404300313BF00C1212B08BA0245
:101B2000BA1F942D3B30BA002A08BC003C30BD00DF
:101B30008A11D2278A157808053CF8002B0878020C
:101B4000BC00BD003C30BE008B227808B9002A08DA
:101B5000BC003C30BD008A11D2278A157808053CAC
:101B6000F8002B087802BB003908BC003C30BD00EF
:101B70008A11D2278A1578083B02BA000930CD00B5
:101B80000130CE008A1150278A153908BB00013078
:101B9000BC0014223A30CC008A1161278A153A0819
:101BA000BB000130BC001422C830CD008A11892648
:101BB0008A15532DAC01AD010C30CC008A11612780
:101BC0008A150130CD000230CE008A1150278A15C7
:101BD0000A3003178D0006308F008A1103138C27FB
:101BE0008A15123003178D0006308F000313002072
:101BF0000130CD00CE008A1150278A15A7018B1B1A
:101C0000A7178B138A1148228A15A71B8B177708F1
:101C1000BB007808BC007908BD007A08BE0002301D
:101C200084007A08C2007908C1007808C0007708EB
:101C3000BF000130C300CF201A3003178D000630DB
:101C40008F00031404300313BF00C1210A30CD00FC
:101C50000130CE008A1150278A1589308400360859
:101C6000C2003508C1003408C0003308BF0001308D
:101C7000C300CF201F3003178D0006308F000314E0
:0E1C800006300313BF00C121F82D042B6300B2
:02400E003A3F37
:00000001FF
;PIC16F877A
;CRC=EEE3 CREATED="05-7-11 14:55"
/Designs/Tools/reflow02/SW/reflow.PJT
0,0 → 1,44
[PROJECT]
Target=reflow.HEX
Development_Mode=2
Processor=0x877A
Processor_Text=PIC16F877A
ToolSuite=CCS
 
[Directories]
Include=
Library=
LinkerScript=
 
[Target Data]
FileList=D:\MLAB\Designs\Tools\reflow2\SW\reflow.c
BuildTool=C-COMPILER
OptionString=+FM
AdditionalOptionString=
BuildRequired=1
 
[reflow.c]
Type=4
Path=
FileList=
BuildTool=
OptionString=
AdditionalOptionString=
 
[mru-list]
1=reflow.c
 
[Windows]
0=0000 reflow.c 0 0 796 451 3 0
 
[Opened Files]
1=reflow.c
2=reflow.h
3=..\..\..\..\..\..\..\..\Program Files (x86)\PICC\devices\16F877A.h
4=process.h
5=..\..\..\..\..\..\..\..\Program Files (x86)\PICC\drivers\math.h
6=lcd.c
7=
[Units]
Count=1
1=reflow (main)
/Designs/Tools/reflow02/SW/reflow.c
0,0 → 1,356
#include "reflow.h"
#include "process.h"
#include <math.h>
 
// nastaveni teplot a casu
#define TEPLOTA_PREDEHREVU 120
#define DOBA_PREDEHREVU 60
 
#define TEPLOTA_VRCHOLU 210
#define DOBA_VRCHOLU 5
 
// CPU IO rozhrani
#define LCD_RS PIN_C1 // rizeni registru LCD displeje
#define LCD_E PIN_C2 // enable LCD displeje
#define LCD_DATA_LSB PIN_D0 // data LCD
#include "lcd.c"
 
#define TL1 PIN_B3 // tlacitko S1
#define TL2 PIN_B2 // tlacitko S2
#define TL3 PIN_B1 // tlacitko S3
#define TL4 PIN_B0 // tlacitko S4
 
#define POWER_T3 PIN_C4 // ovladani optotriaku T3
#define POWER_T4 PIN_C5 // ovladani optotriaku T4
#define POWER_T5 PIN_C6 // ovladani optotriaku T5
 
#define ADC_PIN PIN_A0 //info, nelze menit - pin pouzit jako input analog
#define ADC_PIN_NC PIN_A1 //info, nelze menit - pin pouzit jako input analog
#define REF_PIN PIN_A3 //info, nelze menit - pin pouzit jako input reference 2.5V
 
// interni
#define PowerOn() output_low(POWER_T4);output_low(POWER_T5)
#define PowerOff() output_high(POWER_T4);output_high(POWER_T5)
 
// globalni promenne
struct time
{
volatile signed int8 hod;
volatile signed int8 min;
volatile signed int8 sec;
}cas;
 
unsigned int top_heat_power=0; // range 0-200% nad 100% je ale teleso jiz pretizene
unsigned int bottom_heat_power=0; // contains heating power range 0-100%
unsigned int period;
 
float temp_last=0;
float temp_slope=0;
 
 
void GeneralCpuInit() // inicializace
{
output_high(POWER_T4);
output_high(POWER_T5);
port_b_pullups(true);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64); //nepouzit
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); // rizeni
setup_timer_2(T2_DIV_BY_16,249,10); //rtc 40ms
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER2);
enable_interrupts(INT_TIMER0);
setup_adc_ports(AN0_AN1_VSS_VREF); //A0 vstup cidla, A1 nepozit, A3 - ref. 2.5V
setup_adc(ADC_CLOCK_DIV_8);
SET_ADC_CHANNEL(0); //AN0, PIN_A0
}
 
void heat_failure() // exception in case of heating fail
{
top_heat_power=0;
bottom_heat_power=0;
 
lcd_gotoxy(1,2);
printf(lcd_putc,"HEATING FAILURE!");
while(true);
 
}
 
unsigned int16 adc(void) // adc read and filtering
{
unsigned int16 analog;
unsigned int8 a;
 
analog = 0;
for (a=0;a<32;a++)
{
analog += read_adc();
delay_us(50);
}
return (analog >> 5 ); // prumer = analog/32
}
 
float teplota(void) // temperature measuring
{
return (0.674201*adc() - 294.35); // temperature calculaton (linear aproximation)
}
 
void top_heating()
{
if (period < top_heat_power){
output_low(POWER_T4);
output_low(POWER_T5);
}
else{
output_high(POWER_T4);
output_high(POWER_T5);
}
}
 
void bottom_heating()
{
 
if (period < 2*bottom_heat_power){
output_low(POWER_T3);
}
else{
output_high(POWER_T3);
}
}
 
#int_TIMER0
void heating_control() //rizeni topnych teles pri preteceni casovace
{
float temp;
 
top_heating();
bottom_heating();
if ((period == 100) || (period == 0))
{
temp=teplota();
temp_slope=(temp - temp_last) /(100.0*256.0/62500.0); // vypocet strmosti narustu teploty ve stupnich/s
temp_last = temp;
printf("%02u %02u %3.3f \r\n",cas.min,cas.sec,temp); //vypis pro zaznam profilu
}
if (period < 200) period++;
else period=0;
}
 
#int_TIMER2
void Rtc(void) //40ms
{
static unsigned int8 ms40=0;
struct time* time;
time=&cas;
if ( ++ms40 < 25) return;
ms40=0;
if (++(time->sec) >= 60)
{
time->sec=0; //1min
if (++(time->min) >= 60)
{
time->min = 0; //1hod
(time->hod)++;
}
}
}
 
void slope_control(float ramp, unsigned int balance) // P proporcionalni rizeni narustu teploty predpoklada periodicke volani 1x/s
{
float slope_deviation;
 
slope_deviation = temp_slope - ramp; // vypocet strmosti a odchylky od pozadovane strmosti
 
if(slope_deviation < 0)
{
top_heat_power= 60 + balance;
bottom_heat_power= 100;
}
else{
top_heat_power=0;
bottom_heat_power=0;
}
}
 
void level_control(float level) // P proporcionalni rizeni teploty
{
if (teplota() > level)
{
top_heat_power=0;
bottom_heat_power=0;
}
else
{
top_heat_power=70;
bottom_heat_power=80;
}
}
 
 
void nullcas(struct time* time)
{
disable_interrupts(INT_TIMER2);
time->sec=0;
time->hod=0;
time->min=0;
enable_interrupts(INT_TIMER2);
}
 
void reflow_solder()
{
 
struct time process_time;
 
// ------------------- PREHEAT ---------------------
 
nullcas(&cas);
lcd_gotoxy(1,2);
printf(lcd_putc,"PREHEAT");
printf("#PREHEAT\r\n");
 
do {
slope_control(PREHEAT_SLOPE, 0); // hlida strmost predehrevu
 
lcd_gotoxy(1,1);
printf(lcd_putc,"%3.1f\21C ",teplota());
 
lcd_gotoxy(12,1);
printf(lcd_putc,"%02u:%02u",cas.min,cas.sec);
 
lcd_gotoxy(10,2);
printf(lcd_putc,"%1.1f\21C/s ",temp_slope);
 
delay_ms(200);
if (cas.min>3) heat_failure();
}
while (teplota() < SOAK_TEMP);
 
// ----------- SOAK ---------------
nullcas(&cas);
process_time.min = SOAK_TIME/60;
process_time.sec = SOAK_TIME - process_time.min*60;
 
lcd_clr();
lcd_gotoxy(1,2);
printf(lcd_putc,"SOAK ");
printf("#SOAK\r\n");
 
while (process_time.sec!=0 || process_time.min!=0)
{
level_control(SOAK_TEMP);
 
lcd_gotoxy(1,1);
printf(lcd_putc,"%3.1f\21C ",teplota());
 
if ((process_time.sec = process_time.sec - cas.sec)<0) process_time.sec=59;
 
process_time.min = (SOAK_TIME - cas.min*60 - cas.sec)/60;
process_time.sec = (SOAK_TIME - cas.min*60 - cas.sec) - process_time.min*60;
 
lcd_gotoxy(9,1);
printf(lcd_putc,"%02u:%02u", process_time.min, process_time.sec);
delay_ms(200);
}
//----------------- solder ----------------------------
 
nullcas(&cas);
lcd_clr();
lcd_gotoxy(1,2);
printf(lcd_putc,"SOLDER");
printf("#SOLDER\r\n");
 
do {
slope_control(SOLDER_SLOPE, 10); // hlida strmost predehrevu
 
lcd_gotoxy(1,1);
printf(lcd_putc,"%3.1f\21C ",teplota());
 
lcd_gotoxy(12,1);
printf(lcd_putc,"%02u:%02u",cas.min,cas.sec);
 
lcd_gotoxy(10,2);
printf(lcd_putc,"%1.1f\21C/s ",temp_slope);
 
delay_ms(200);
if (cas.min>2) heat_failure();
}
while (teplota() < SOLDER_TEMP);
 
// ---------------- TAO ------------------------
 
 
while (process_time.sec!=0 || process_time.min!=0)
{
level_control(SOLDER_TEMP);
 
lcd_gotoxy(1,1);
printf(lcd_putc,"%3.1f\21C ",teplota());
 
if ((process_time.sec = process_time.sec - cas.sec)<0) process_time.sec=59;
 
process_time.min = (SOLDER_TIME - cas.min*60 - cas.sec)/60;
process_time.sec = (SOLDER_TIME - cas.min*60 - cas.sec) - process_time.min*60;
 
lcd_gotoxy(9,1);
printf(lcd_putc,"%02u:%02u", process_time.min, process_time.sec);
delay_ms(200);
}
 
// ---------------- COOLING ------------------------
 
top_heat_power=0;
bottom_heat_power=0;
 
lcd_clr();
 
lcd_gotoxy(1,2);
printf(lcd_putc,"REFLOW COMPLETE");
printf("COOLING \r\n");
 
 
while(true)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"%3.1f\21C ",teplota());
 
lcd_gotoxy(10,1);
printf(lcd_putc,"%1.1f\21C/s ",temp_slope);
}
}
 
void main() // main loop
{
GeneralCpuInit();
PowerOff();
lcd_init();
lcd_define_char(1,LCD_CHAR_STUPEN);
nullcas(&cas);
while(true)
{
delay_ms(300);
reflow_solder();
}
}
/Designs/Tools/reflow02/SW/reflow.h
0,0 → 1,16
#include <16F877A.h>
#device adc=10
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
 
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B7,rcv=PIN_B6,bits=8)
 
/Designs/Tools/reflow02/SW/LCD.C
0,0 → 1,318
// LCD modul pro ovladani dvouradkoveho LCD modulu se standardnim Hitachi radicem
// (c)miho 2002,2005
//
// Historie:
//
// 0.00 Uvodni verze se snadnou definici portu LCD displeje
// 0.01 Oprava portu (zapomenute stare identifikatory)
// 0.02 Doplnena moznost pripojeni datoveho portu LCD na libovolne porty
// 0.03 Doplnena procedura lcd_clr pro smazani displeje
//
//
// Funkce:
//
// lcd_init() inicializuje LCD displej a porty, nutno volat jako prvni
//
// lcd_putc(c) zapis snaku do lcd displeje, zpracovava nasledujici ridici znaky
// \f = \x0C - nova stranka - smazani displeje
// \n = \x0A - odradkovani (prechod na druhou radku)
// \b = \x08 - backspace - posunuti kurzoru o 1 pozici zpet
// \r = \x0D - goto home to position 1,1
// \0 .. \7 - definovatelne znaky v pozicich 0 az 7 v CGRAM
// \20 .. \27 - alternativne zapsane znaky (oktalove) v pozicich 0 az 7 CGRAM
// Pozor na to, ze funkce printf konci tisk pokud narazi na \0 (konec retezce)
//
// lcd_gotoxy(x,y) presune kurzor na uvedenou adresu
// nekontroluje parametry
//
// lcd_cursor_on zapne kurzor
// lcd_cursor_off vypne kurzor
//
// lcd_clr smaze displej
//
// lcd_define_char(Index, Def) Makro, ktere definuje znaky od pozice Index obsahem definicniho
// retezce Def. Kazdych 8 znaku retezce Def definuje dalsi znak v CGRAM.
// Kapacita CGRAM je celkem 8 znaku s indexem 0 az 7.
// Na konci se provede lcd_gotoxy(1,1).
// Na konci teto knihovny je priklad pouziti definovanych znaku
//
//
// Definice portu: // Datovy port displeje pripojeny na 4 bity za sebou na jeden port
//
// #define LCD_RS PIN_B2 // rizeni registru LCD displeje
// #define LCD_E PIN_B1 // enable LCD displeje
// #define LCD_DATA_LSB PIN_C2 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou)
//
//
// Alternativni definice: // Datovy port displeje pripojeny na libovolne 4 bitove porty (vede na kod delsi asi o 25 slov)
//
// #define LCD_RS PIN_B2 // rizeni registru LCD displeje
// #define LCD_E PIN_B1 // enable LCD displeje
// #define LCD_D0 PIN_C2 // D0 - datove bity pripojene na libovolne porty
// #define LCD_D1 PIN_C3 // D1
// #define LCD_D2 PIN_C4 // D2
// #define LCD_D3 PIN_C5 // D3
 
 
 
 
// Privatni sekce, cist jen v pripade, ze neco nefunguje
 
 
 
 
#ifdef LCD_DATA_LSB
// Generovane defince portu pro ucely teto knihovny aby kod generoval spravne IO operace a soucasne
// bylo mozne jednoduse deklarovat pripojene piny LCD displeje pri pouziti teto knihovny. Problem spociva
// v tom, ze se musi spravne ridit smery portu a soucasne datovy port zabira jen 4 bity ze zadaneho portu
//
#define LCD_SHIFT (LCD_DATA_LSB&7) // pocet bitu posuvu datoveho kanalu v datovem portu
#define LCD_PORT (LCD_DATA_LSB>>3) // adresa LCD datoveho portu
#define LCD_TRIS (LCD_PORT+0x80) // adresa prislusneho TRIS registru
#define LCD_MASK (0xF<<LCD_SHIFT) // maska platnych bitu
//
#if LCD_SHIFT>4 // kontrola mezi
#error LCD data port LSB bit not in range 0..4
#endif
#endif
 
 
// Definice konstant pro LCD display
//
#define LCD_CURSOR_ON_ 0x0E // kurzor jako blikajici radka pod znakem
#define LCD_CURSOR_OFF_ 0x0C // zadny kurzor
#define LCD_LINE_2 0x40 // adresa 1. znaku 2. radky
 
 
// Definice rezimu LCD displeje
//
BYTE const LCD_INIT_STRING[4] =
{
0x28, // intrfejs 4 bity, 2 radky, font 5x7
LCD_CURSOR_OFF_, // display on, kurzor off,
0x01, // clear displeje
0x06 // inkrement pozice kurzoru (posun kurzoru doprava)
};
 
 
// Odesle nibble do displeje (posle data a klikne signalem e)
//
void lcd_send_nibble( BYTE n )
{
#ifdef LCD_DATA_LSB
// data jsou za sebou na 4 bitech jednoho portu
*LCD_PORT = (*LCD_PORT & ~LCD_MASK) | ((n << LCD_SHIFT) & LCD_MASK); // nastav datove bity portu a ostatni zachovej
#else
// data jsou na libovolnych 4 bitech libovolnych portu
output_bit(LCD_D0,bit_test(n,0));
output_bit(LCD_D1,bit_test(n,1));
output_bit(LCD_D2,bit_test(n,2));
output_bit(LCD_D3,bit_test(n,3));
#endif
output_bit(LCD_E,1); // vzestupna hrana
delay_us(1); // pockej alespon 450ns od e nebo alespon 195ns od dat
output_bit(LCD_E,0); // sestupna hrana (minimalni perioda e je 1us)
}
 
 
// Odesle bajt do registru LCD
//
// Pokud je Adr=0 .. instrukcni registr
// Pokud je Adr=1 .. datovy registr
//
void lcd_send_byte( BOOLEAN Adr, BYTE n )
{
output_bit(LCD_RS,Adr); // vyber registr
swap(n);
lcd_send_nibble(n); // posli horni pulku bajtu
swap(n);
lcd_send_nibble(n); // posli spodni pulku bajtu
delay_us(40); // minimalni doba na provedeni prikazu
}
 
 
// Provede inicializaci LCD displeje, smaze obsah a nastavi mod displeje
//
// Tato procedura se musi volat pred pouzitim ostatnich lcd_ procedur
//
void lcd_init()
{
 
int i; // pocitadlo cyklu
 
delay_ms(200); // spozdeni pro provedeni startu displeje po zapnuti napajeni
 
#ifdef LCD_DATA_LSB
// data jsou na 4 bitech za sebou, nastav smer pro vsechny dalsi prenosy
*LCD_TRIS = *LCD_TRIS & ~LCD_MASK; // nuluj odpovidajici bity tris registru datoveho portu LCD
#endif
 
output_bit(LCD_RS,0); // nastav jako vystup a nastav klidovy stav
output_bit(LCD_E, 0); // nastav jako vystup a nastav klidovy stav
 
for (i=0; i<3; i++) // nastav lcd do rezimu 8 bitu sbernice
{
delay_ms(2); // muze byt rozdelany prenos dat (2x 4 bity) nebo pomaly povel
lcd_send_nibble(3); // rezim 8 bitu
}
 
delay_us(40); // cas na zpracovani
lcd_send_nibble(2); // nastav rezim 4 bitu (plati od nasledujiciho prenosu)
delay_us(40); // cas na zpracovani
 
for (i=0;i<3;i++) // proved inicializaci (nastaveni modu, smazani apod)
{
lcd_send_byte(0,LCD_INIT_STRING[i]);
delay_ms(2);
}
}
 
 
// Proved presun kurzoru
//
// Pozice 1.1 je domu
//
void lcd_gotoxy( BYTE x, BYTE y)
{
 
BYTE Adr;
 
Adr=x-1;
if(y==2)
Adr+=LCD_LINE_2;
 
lcd_send_byte(0,0x80|Adr);
}
 
 
// Zapis znaku na displej, zpracovani ridicich znaku
//
void lcd_putc( char c)
{
 
switch (c)
{
case '\f' : lcd_send_byte(0,1); // smaz displej
delay_ms(2);
break;
case '\n' : lcd_gotoxy(1,2); break; // presun se na 1. znak 2. radky
case '\r' : lcd_gotoxy(1,1); break; // presun home
// case '\b' : lcd_send_byte(0,0x10); break; // posun kurzor o 1 zpet
default : if (c<0x20) c&=0x7; // preklopeni definovatelnych znaku na rozsah 0 az 0x1F
lcd_send_byte(1,c); break; // zapis znak
}
}
 
 
// Zapni kurzor
//
void lcd_cursor_on()
{
lcd_send_byte(0,LCD_CURSOR_ON_);
}
 
 
// Vypni kurzor
//
void lcd_cursor_off()
{
lcd_send_byte(0,LCD_CURSOR_OFF_);
}
 
 
// Smaz displej
//
void lcd_clr()
{
lcd_putc('\f');
}
 
 
// Definice vlastnich fontu
//
// Vlastnich definic muze byt jen 8 do pozic 0 az 7 pameti CGRAM radice lcd displeje
// Pro snadne definovani jsou pripraveny nasledujici definice a na konci souboru je uveden
// priklad pouziti definovanych znaku.
 
 
// Pomocna procedura pro posilani ridicich dat do radice displeje
//
void lcd_putc2(int Data)
{
lcd_send_byte(1,Data);
}
 
 
// Pomocne definice pro programovani obsahu CGRAM
//
#define lcd_define_start(Code) lcd_send_byte(0,0x40+(Code<<3)); delay_ms(2)
#define lcd_define_def(String) printf(lcd_putc2,String);
#define lcd_define_end() lcd_send_byte(0,3); delay_ms(2)
 
 
// Vlastni vykonne makro pro definovani fontu do pozice Index CGRAM s definicnim retezcem Def
//
#define lcd_define_char(Index, Def) lcd_define_start(Index); lcd_define_def(Def); lcd_define_end();
 
 
// Pripravene definice fontu vybranych znaku
// V tabulce nesmi byt 00 (konec retezce v printf()), misto toho davame 80
//
#define LCD_CHAR_BAT100 "\x0E\x1F\x1F\x1F\x1F\x1F\x1F\x1F" /* symbol plne baterie */
#define LCD_CHAR_BAT50 "\x0E\x1F\x11\x11\x13\x17\x1F\x1F" /* symbol polovicni baterie */
 
#define LCD_CHAR_BAT20 "\x0E\x1F\x11\x11\x11\x11\x1F\x1F" /* symbol baterie 20% */
#define LCD_CHAR_BAT40 "\x0E\x1F\x11\x11\x11\x1F\x1F\x1F" /* symbol baterie 40% */
#define LCD_CHAR_BAT60 "\x0E\x1F\x11\x11\x1F\x1F\x1F\x1F" /* symbol baterie 60% */
#define LCD_CHAR_BAT80 "\x0E\x1F\x11\x1F\x1F\x1F\x1F\x1F" /* symbol baterie 80% */
 
#define LCD_CHAR_BAT0 "\x0E\x1F\x11\x11\x11\x11\x11\x1F" /* symbol vybite baterie */
#define LCD_CHAR_UP "\x80\x04\x0E\x15\x04\x04\x04\x80" /* symbol sipka nahoru */
#define LCD_CHAR_DOWN "\x80\x04\x04\x04\x15\x0E\x04\x80" /* symbol Sipka dolu */
#define LCD_CHAR_LUA "\x04\x0E\x11\x11\x1F\x11\x11\x80" /* A s carkou */
#define LCD_CHAR_LLA "\x01\x02\x0E\x01\x1F\x11\x0F\x80" /* a s carkou */
#define LCD_CHAR_HUC "\x0A\x0E\x11\x10\x10\x11\x0E\x80" /* C s hackem */
#define LCD_CHAR_HLC "\x0A\x04\x0E\x10\x10\x11\x0E\x80" /* c s hackem */
#define LCD_CHAR_HUD "\x0A\x1C\x12\x11\x11\x12\x1C\x80" /* D s hackem */
#define LCD_CHAR_HLD "\x05\x03\x0D\x13\x11\x11\x0F\x80" /* d s hackem */
#define LCD_CHAR_LUE "\x04\x1F\x10\x10\x1E\x10\x1F\x80" /* E s carkou */
#define LCD_CHAR_LLE "\x01\x02\x0E\x11\x1F\x10\x0E\x80" /* e s carkou */
#define LCD_CHAR_HUE "\x0A\x1F\x10\x1E\x10\x10\x1F\x80" /* E s hackem */
#define LCD_CHAR_HLE "\x0A\x04\x0E\x11\x1F\x10\x0E\x80" /* e s hackem */
#define LCD_CHAR_LUI "\x04\x0E\x04\x04\x04\x04\x0E\x80" /* I s carkou */
#define LCD_CHAR_LLI "\x02\x04\x80\x0C\x04\x04\x0E\x80" /* i s carkou */
#define LCD_CHAR_HUN "\x0A\x15\x11\x19\x15\x13\x11\x80" /* N s hackem */
#define LCD_CHAR_HLN "\x0A\x04\x16\x19\x11\x11\x11\x80" /* n s hackem */
#define LCD_CHAR_LUO "\x04\x0E\x11\x11\x11\x11\x0E\x80" /* O s carkou */
#define LCD_CHAR_LLO "\x02\x04\x0E\x11\x11\x11\x0E\x80" /* o s carkou */
#define LCD_CHAR_HUR "\x0A\x1E\x11\x1E\x14\x12\x11\x80" /* R s hackem */
#define LCD_CHAR_HLR "\x0A\x04\x16\x19\x10\x10\x10\x80" /* r s hackem */
#define LCD_CHAR_HUS "\x0A\x0F\x10\x0E\x01\x01\x1E\x80" /* S s hackem */
#define LCD_CHAR_HLS "\x0A\x04\x0E\x10\x0E\x01\x1E\x80" /* s s hackem */
#define LCD_CHAR_HUT "\x0A\x1F\x04\x04\x04\x04\x04\x80" /* T s hackem */
#define LCD_CHAR_HLT "\x0A\x0C\x1C\x08\x08\x09\x06\x80" /* t s hackem */
#define LCD_CHAR_LUU "\x02\x15\x11\x11\x11\x11\x0E\x80" /* U s carkou */
#define LCD_CHAR_LLU "\x02\x04\x11\x11\x11\x13\x0D\x80" /* u s carkou */
#define LCD_CHAR_CUU "\x06\x17\x11\x11\x11\x11\x0E\x80" /* U s krouzkem */
#define LCD_CHAR_CLU "\x06\x06\x11\x11\x11\x11\x0E\x80" /* u s krouzkem */
#define LCD_CHAR_LUY "\x02\x15\x11\x0A\x04\x04\x04\x80" /* Y s carkou */
#define LCD_CHAR_LLY "\x02\x04\x11\x11\x0F\x01\x0E\x80" /* y s carkou */
#define LCD_CHAR_HUZ "\x0A\x1F\x01\x02\x04\x08\x1F\x80" /* Z s hackem */
#define LCD_CHAR_HLZ "\x0A\x04\x1F\x02\x04\x08\x1F\x80" /* z s hackem */
 
#define LCD_CHAR_STUPEN "\x06\x09\x09\x06\x80\x80\x80\x80" /* ° stupen C */
 
// Priklad pouziti definovanych znaku
//
//
//void lcd_sample()
//{
// lcd_define_char(0,LCD_CHAR_BAT50); // Priklad definice znaku baterie do pozice 0
// lcd_define_char(2,LCD_CHAR_HLE LCD_CHAR_LUI); // Priklad definice znaku e s hackem a I s carkou od pozice 2
// // vsimnete si, ze neni carka mezi retezci s definici (oba retezce definuji
// // jediny definicni retezec)
// printf(lcd_putc,"\fZnaky:\20\22\23"); // priklad vypisu znaku z pozice 0, 2 a 3
// delay_ms(1000);
// lcd_define_char(0,LCD_CHAR_BAT0); // Predefinovani tvaru znaku v pozici 0
// delay_ms(1000);
//}