Problem with comparison.
/Designs/Tools/reflow2/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/reflow2/SW/reflow.c |
---|
0,0 → 1,351 |
#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 == 200) |
{ |
temp=teplota(); |
temp_slope=(temp - temp_last) /(2*100.0*256.0/62500.0); // vypocet strmosti narustu teploty ve stupnich/s |
temp_last = temp; |
} |
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= 67 + 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"); |
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 "); |
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"); |
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>3) 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"); |
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/reflow2/SW/reflow.hex |
---|
0,0 → 1,398 |
:1000000008308A00C8280000FF00030E8301A10009 |
:100010000A08A0008A010408A2007708A300780853 |
:10002000A4007908A5007A08A600831383128C30F7 |
:100030008400801C1D288C1832288B1E21280B1947 |
:100040003528220884002308F7002408F800250832 |
:10005000F9002608FA0020088A00210E8300FF0E0E |
:100060007F0E09008A110A12D12B8A110A12872ADF |
:100070000A108A100A11820728340C34013406341D |
:10008000C822412A49274710C62049265529C510AC |
:100090000000DE01DD01DF015F081F3C031C622858 |
:1000A0001F151F19512883161E088312DD071E080D |
:1000B00003181E0FDE071030F700F70B5D28000055 |
:1000C000DF0A4C285E0CFA005D0CF900FA0CF90C02 |
:1000D000FA0CF90CFA0CF90CFA0CF90C0730FA05C9 |
:1000E0007908F8007A08F90008008E30F7005E08F9 |
:1000F000F8005D08F900FA01F808031D892879085D |
:10010000F800F9010830F702F808031D8928F70103 |
:1001100091280310F81B9028F90DF80DF703892892 |
:10012000F81308005D0803190229E50061080319A6 |
:100130000229E5070318A3287F30E502031C0229E2 |
:1001400003190229A7288130E50703180229650849 |
:10015000F700F801F901FA015E08E900E9175F0804 |
:10016000E8006008E7001830E500E601671CD028C9 |
:100170006408FA07031CC228F90A031DC228F80AFA |
:100180000319E6176308F907031CC928F80A0319BD |
:10019000E6176208DF00DF175F08F8070318E617A5 |
:1001A000E60DF80CF90CFA0CE90CE80CE70C03105E |
:1001B000E50BB5280130F70703180229F81BE728DB |
:1001C000E90DFA0DF90DF80DF70303190229E91FDE |
:1001D000F828FA0A031DF828F90A031DF828F80A76 |
:1001E000031DF828F80CF90CFA0CF70A0319022978 |
:1001F0005E08E6006208E606E61F0029F8170629F1 |
: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 |
:1004A0007030E0009830DF002C30DE007E30DD0060 |
:1004B0007A08E4007908E3007808E2007708E100B0 |
:1004C00092207708DD007808DE007908DF007A08DE |
:1004D000E000E2010408E1006210831B621483144F |
:1004E0007A08E6007908E5007808E4007708E30078 |
:1004F000CD30EA002C30E9001330E8008730E70007 |
:1005000007216108840083136218831708002C08F0 |
:100510002E020318982AA81228088316870083122F |
:100520008712281328088316870083120713A42A2A |
:10053000A812280883168700831287162813280814 |
:10054000831687008312071703102D0D2E02031840 |
:10055000B02A281228088316870083120712B62AA9 |
:100560002812280883168700831207162E08C83C15 |
:10057000031DC62B48227A08DC007908DB007808C6 |
:10058000DA007708D90083145C08E6005B08E50010 |
:100590005A08E4005908E3003208EA003108E9008B |
:1005A0003008E8002F08E70007217708DD00780809 |
:1005B000DE007908DF007A08E0006008E4005F08E8 |
:1005C000E3005E08E2005D08E1001730E800B730A4 |
:1005D000E7005130E6007E30E50061080319B22BD8 |
:1005E000ED0065080319B22BED02031CFC2A7F30D5 |
:1005F000ED070318B22B022B8130ED02031CB22B46 |
:100600000319B22B6D08F700F801F901FA01EC01AA |
:100610006208EB00EB176308EA006408E900193090 |
:10062000ED006808E9020318252B0130EA020318DF |
:10063000252BEB020318252BEC020318252BEC0AC3 |
:10064000EB0AEA0A6808E907572B6708EA02031869 |
:10065000402B0130EB020318402BEC020318402B17 |
:10066000EC0AEB0A6708EA076808E907031C572B3E |
:10067000EA0A031D572BEB0A031D572BEC0A572BD5 |
:1006800066088038EB020318562B0130EC02031881 |
:10069000562BEC0A66088038EB076708EA07031C4C |
:1006A000342BEB0A031D342BEC0A342B7A14ED0B9C |
:1006B0005A2B652B0310E90DEA0DEB0DEC0D031021 |
:1006C000FA0DF90DF80DEE0D112B6E1C6D2B0310AC |
:1006D000F80CF90CFA0CEE0C702BF7030319B22B83 |
:1006E000EE1B992B0310E90DEA0DEB0DEC0D6808DC |
:1006F000E9020318852B0130EA020318852BEB026F |
:100700000318852BEC02031CA82B6708EA020318C8 |
:10071000902B0130EB020318902BEC02031CA82B4A |
:1007200066088038EB020318992B0130EC02031C99 |
:10073000A82BFA0A031DA82BF90A031DA82BF80AF7 |
:10074000031DA82BF70A0319B22BF80CF90CFA0CAD |
:100750006208ED006608ED06ED1FB02BF817B62B0A |
:10076000F813B62BF701F801F901FA017A08B6007F |
:100770007908B5007808B4007708B3005C08B200C7 |
:100780005B08B1005A08B0005908AF002E08C73CFA |
:10079000031CCC2BAE0ACD2BAE010B118A110A1211 |
:1007A0002128DA012930D900B70A3708183C031884 |
:1007B000082CB70102305907840083135A18831795 |
:1007C000800A801B082C00083B3C0318082C0230D0 |
:1007D0005907840083135A18831780010130590781 |
:1007E000840083135A188317800A801B082C000882 |
:1007F0003B3C0318082C01305907840083135A1816 |
:10080000831780015908840083135A188317800ABC |
:100810008C108A110A12212850294524C520540021 |
:10082000A519AE18E60843102000A518AE18E60872 |
:10083000C31773102000D327C125201020100001FA |
:10084000A519AE18E60843102000D3274C224529ED |
:100850000001A519AE18E60843102000A518AE182F |
:10086000E608C31773102000A519AE18E608431058 |
:100870002000D2224626CF2BA021CF265026452A63 |
:100880004500A519AE18E60843102000A518AE18BB |
:10089000E608C317731020000634093409340634FF |
:1008A00080348034803480340034A81228088316C1 |
:1008B000870083128716281328088316870083125F |
:1008C000071783168113091283129412A81228089D |
:1008D0008316870083122816280883168700831240 |
:1008E000A811280883168700013083129400003075 |
:1008F000831694000108C0390538810085308312C1 |
:1009000090004830F80006389200F93083169200C3 |
:1009100007309C00050885000330F700F70B8E2C8C |
:100920001C0883120D1383169D01C03083128B04A3 |
:1009300083168C1483128B1683161F149F101F1599 |
:100940009F111F1383121F179F1383169F17831264 |
:100950001F140030F8001F08C73978049F008A155B |
:100960000A12E7284D308400831300080319C62CAF |
:100970000130F800F701F70BBB2CF80BBA2C4A300A |
:10098000F700F70BC12CC42C800BB82C080008080A |
:10099000F039D50053080F39550488000715281180 |
:1009A00028088316870000008312071128112808E1 |
:1009B0008316870083120800D108031DE12C8710DD |
:1009C000E22C8714A8102808831687008312D20E01 |
:1009D0005208D300C724D20E5208D300C7240D30CA |
:1009E000F700F70BF12C0800C830CD00B224F0302E |
:1009F0008316880583128710A8102808831687009D |
:100A00008312071128112808831687008312B80162 |
:100A10003808023C031C142D0230CD00B2240330F0 |
:100A2000D300C724B80A082D0D30F700F70B162D98 |
:100A30000230D300C7240D30F700F70B1D2DB8018D |
:100A40003808023C031C302D38083820B900D10189 |
:100A50003908D200DC240230CD00B224B80A202D9F |
:100A60008A150A12F628831603178C170C14000037 |
:100A7000000083128C0803195A2D0D080313B800C7 |
:100A800003170F080313B90003170C080313BA0068 |
:100A90000130D1003A08D200DC24380803178D0059 |
:100AA0000313390803178F008D0A03198F0A0313E4 |
:100AB000332D031703138A150A120A2983168C1083 |
:100AC000023083123B07840083133C188317800194 |
:100AD0003B08840083133C188317800101303B07D7 |
:100AE000840083133C188317800183168C148312AF |
:100AF000080001304D02CF004E08023C031D822D3C |
:100B00004030CF074F088038D000D1015008D200C4 |
:100B1000DC2408004C080C3A0319952D063A0319F9 |
:100B20009D2D073A0319A32DA82DD1010130D20024 |
:100B3000DC240230CD00B224B42D0130CD000230CF |
:100B4000CE007925B42D0130CD00CE007925B42D0D |
:100B50004C081F3C031CAE2D0730CC050130D100E2 |
:100B60004C08D200DC24B42D0800831603178C1720 |
:100B70000C140000000083120C087F390319F92DB2 |
:100B80000313BB0003170D080313BC0003170F0862 |
:100B90000313BD003B08CC008A253C0803178D00D9 |
:100BA00003133D0803178F0083168C170C140000E5 |
:100BB000000083120C0D0E0D7F390319F92D03135C |
:100BC000BB0003170D080313BC0003170F08031322 |
:100BD000BD003B08CC008A253C0803178D00031399 |
:100BE0003D0803178F008D0A03198F0A0313B52DD3 |
:100BF0000317031308004508CC004908CC06CC1F96 |
:100C0000062E03110310C51B0314392E4508CC0012 |
:100C10004808CD004408CD020319142ECC1F392EEC |
:100C20000308013A8300392E4908CD004508CD025A |
:100C30000319202ECC1F392E0308013A8300392EC8 |
:100C40004A08CD004608CD0203192C2ECC1F392EA0 |
:100C50000308013A8300392E4B08CD004708CD0226 |
:100C60000319382ECC1F392E0308013A8300392E80 |
:100C7000031008008314A7018B1BA7178B133608DA |
:100C8000E6003508E5003408E4003308E3003E08D8 |
:100C9000EA003D08E9003C08E8003B08E7000721BE |
:100CA000A71B8B177A08C3007908C2007808C10017 |
:100CB0007708C0004308C7004208C6004108C500C5 |
:100CC0004008C400CB01CA01C901C801FB25031CAF |
:100CD0006F2E43303F07AC006430AD00712EAC0185 |
:100CE000AD010800F701F801F901FA01D401D501BD |
:100CF000D601D70153085204510450040319B02EF1 |
:100D00002030D8000310CC0DCD0DCE0DCF0DD40D5D |
:100D1000D50DD60DD70D53085702031D992E520835 |
:100D20005602031D992E51085502031D992E500895 |
:100D30005402031CAA2E5008D4025108031C510F60 |
:100D4000D5025208031C520FD6025308031C530F3E |
:100D5000D7020314F70DF80DF90DFA0DD80B822EFA |
:100D600054308400831308000408C4004308C600FC |
:100D70000319D92EA7018B1BA7178B134208E0007C |
:100D80004108DF004008DE003F08DD00E401E30128 |
:100D90002030E2008230E1009220A71B8B177A08F6 |
:100DA000C2007908C1007808C0007708BF00C60BF0 |
:100DB000BA2E4208CF004108CE004008CD003F08BF |
:100DC000CC004C08B63CCC00FA014D08D000CD1741 |
:100DD0000310CD0CCE0CCF0CFA0CF90CF80CF70C60 |
:100DE000CC0BE82ED01FFF2EF709F809F909FA09F4 |
:100DF000F70A0319F80A0319F90A0319FA0A7A0813 |
:100E0000C2007908C1007808C0007708BF00C21F7F |
:100E1000162FC403C416BF09C009C109C209BF0AFD |
:100E20000319C00A0319C10A0319C20A3B30CB00D7 |
:100E30009A30CA00CA30C900C8010A30C600430847 |
:100E40000319C40A4208CF004108CE004008CD0073 |
:100E50003F08CC004B08D3004A08D2004908D10013 |
:100E60004808D00072260008BF00840A0008C000AD |
:100E7000840A0008C100840A0008C200FD3084070B |
:100E8000F708031D562F430A46020319562F44083C |
:100E90000319582F0F3946020319502F0318882FB2 |
:100EA000C41B882F441B582F2030842F2030C405AA |
:100EB000C41E662FC4124308031DC4037708C40070 |
:100EC0002D30CC008A254408F700C40143084602AF |
:100ED000031D742F7708C4002E30CC008A254408E7 |
:100EE000F7002030C40500303030C41E842FC412F7 |
:100EF0004308031DC4037708C4002D30CC008A25A5 |
:100F00004408F700C4013030F7077708CC008A2581 |
:100F10004B08CF004A08CE004908CD004808CC0055 |
:100F2000D301D201D1010A30D00072267A08CB0059 |
:100F30007908CA007808C9007708C800C60B222FB4 |
:100F40000800831603178C170C1400000000031808 |
:100F5000D02F83120C087F390313C00003170D082C |
:100F60000313C10003170F080313C2004008CC008D |
:100F70008A25410803178D000313420803178F00C9 |
:100F800083168C170C140000000083120313BF0B90 |
:100F9000CA2FCD2F83160317D02FEF2F83160317D9 |
:100FA00083120C0D0E0D7F390313C00003170D08BB |
:100FB0000313C10003170F080313C2004008CC003D |
:100FC0008A25410803178D000313420803178F0079 |
:100FD0008D0A03198F0A03100313BF0BA12F0800FA |
:101000003E08F8013D02031808283D08F70014289F |
:10101000F7010830BF00BD0DF70D3E087702031839 |
:10102000F700F80DBF0B0B28080078083B08BD003F |
:101030006430BE0000207708BB0078083030031D04 |
:101040002828BC1C3128BC1931283C1A20302B28F8 |
:10105000BC113C123C14F8077808CC008A118A2590 |
:101060008A153B08BD000A30BE0000207708BB008F |
:1010700078083030031D4228BC1948283C1C4828F9 |
:101080003C1A2030F8077808CC008A118A258A1586 |
:101090003030BB073B08CC008A118A258A1508002E |
:1010A000F701F8013C0803103D18F707F70CF80C9E |
:1010B000BD18F707F70CF80C3D19F707F70CF80CFB |
:1010C000BD19F707F70CF80C3D1AF707F70CF80CE9 |
:1010D000BD1AF707F70CF80C3D1BF707F70CF80CD7 |
:1010E000BD1BF707F70CF80C0800A7018B1BA7170F |
:1010F0008B138A1148228A15A71B8B177708BF000C |
:101100007808C0007908C1007A08C2003E08C7000C |
:101110003D08C6003C08C5003B08C4004208CB009F |
:101120004108CA004008C9003F08C8008A11FB25D1 |
:101130008A15031C9E28AC01AD01A2284630AC00E4 |
:101140005030AD0008003D083E068039C000BD1F8C |
:10115000AB28BD09BD0ABE1FAF28BE09BE0A3E08A6 |
:10116000F8013D020318B7283D08F700C328F7012E |
:101170000830BF00BD0DF70D3E0877020318F700D9 |
:10118000F80DBF0BBA28C01FC728F809F80A0800D5 |
:10119000840183131F3083058316861383128617F9 |
:1011A000AC01AD01B201B101B001AF01B601B501B1 |
:1011B000B401B301B70183161F149F141F159F11AB |
:1011C00007309C00FF308312A8008A11552C8A1525 |
:1011D000A812280883168700831287162813280868 |
:1011E00083168700831207178A11F42C8A15D10100 |
:1011F0004830D2008A11DC248A150230CD008A11D1 |
:10120000B2248A154C3003178D0004308F008A11E8 |
:101210000313332D8A15D1010330D2008A11DC2447 |
:101220008A150230CD008A11B2248A15BC012930FA |
:10123000BB008A115E258A150230B8009630CD00B9 |
:101240008A11B2248A15B80B1E29BC012930BB00B3 |
:101250008A115E258A150130CD000230CE008A1138 |
:1012600079258A150C3003178D0004308F008A1100 |
:101270000313B5258A15BE01BD01BC017F30BB003B |
:10128000BF018A113A268A150130CD00CE008A119D |
:1012900079258A15A7018B1BA7178B138A11482262 |
:1012A0008A15A71B8B177708BB007808BC00790844 |
:1012B000BD007A08BE00023084007A08C2007908B6 |
:1012C000C1007808C0007708BF000130C3008A1150 |
:1012D000B4268A15123003178D0004308F000314D2 |
:1012E00004300313BF008A11A1278A150C30CD00EA |
:1012F0000130CE008A1179258A152A08BB000130F9 |
:10130000BC0015203A30CC008A118A258A152B089A |
:10131000BB000130BC0015200A30CD000230CE00E9 |
:101320008A1179258A15893084003608C20035086B |
:10133000C1003408C0003308BF000130C3008A1167 |
:10134000B4268A15173003178D0004308F0003145C |
:1013500006300313BF008A11A1278A15C830CD00BB |
:101360008A11B2248A15AA1BCC292A08033C031827 |
:10137000CC29AC01AD010130CD000230CE008A1184 |
:1013800079258A15403003178D0000308F008A11AF |
:101390000313B5258A15CB29A7018B1BA7178B1320 |
:1013A0008A1148228A15A71B8B177708BB0078087B |
:1013B000BC007908BD007A08BE00C7003D08C60021 |
:1013C0003C08C5003B08C400CB01CA011630C90067 |
:1013D0008630C8008A11FB258A1503183B29BC01F9 |
:1013E0002930BB008A115E258A150130B900390801 |
:1013F000BC003C30BD0050207808643CBA000C3082 |
:10140000CC008A118A258A150130CD000230CE0029 |
:101410008A1179258A151B3003178D0004308F003F |
:101420008A110313B5258A15BA08031D1A2AB908AB |
:101430000319992ABE01BD011630BC008630BB00DD |
:1014400075200130CD00CE008A1179258A15A701BB |
:101450008B1BA7178B138A1148228A15A71B8B1782 |
:101460007708BB007808BC007908BD007A08BE0088 |
:10147000023084007A08C2007908C1007808C000F0 |
:101480007708BF000130C3008A11B4268A152230C4 |
:1014900003178D0004308F00031404300313BF00C2 |
:1014A0008A11A1278A152B08BA02BA1F592A3B3084 |
:1014B000BA002A08BC003C30BD0050207808643CCB |
:1014C000F8002B087802BC00BD003C30BE00A32011 |
:1014D0007808B9002A08BC003C30BD0050207808CC |
:1014E000643CF8002B087802BB003908BC003C3093 |
:1014F000BD00502078083B02BA000930CD00013011 |
:10150000CE008A1179258A153908BB000130BC004C |
:1015100015203A30CC008A118A258A153A08BB007A |
:101520000130BC001520C830CD008A11B2248A15C4 |
:10153000142ABC012930BB008A115E258A150C30A3 |
:10154000CC008A118A258A150130CD000230CE00E8 |
:101550008A1179258A15253003178D0004308F00F4 |
:101560008A110313B5258A15BE01BD012030BC00C8 |
:101570008030BB000A30BF008A113A268A1501303C |
:10158000CD00CE008A1179258A15A7018B1BA717DC |
:101590008B138A1148228A15A71B8B177708BB006B |
:1015A0007808BC007908BD007A08BE0002308400CB |
:1015B0007A08C2007908C1007808C0007708BF0027 |
:1015C0000130C3008A11B4268A152B3003178D0011 |
:1015D00004308F00031404300313BF008A11A127C5 |
:1015E0008A150C30CD000130CE008A1179258A157C |
:1015F0002A08BB000130BC0015203A30CC008A110B |
:101600008A258A152B08BB000130BC0015200A3042 |
:10161000CD000230CE008A1179258A1589308400E8 |
:101620003608C2003508C1003408C0003308BF00C6 |
:101630000130C3008A11B4268A15303003178D009B |
:1016400004308F00031406300313BF008A11A12752 |
:101650008A15C830CD008A11B2248A15AA1B472BDF |
:101660002A08033C0318472BAC01AD010130CD0023 |
:101670000230CE008A1179258A15403003178D007B |
:1016800000308F008A110313B5258A15462BA70158 |
:101690008B1BA7178B138A1148228A15A71B8B1740 |
:1016A0007708BB007808BC007908BD007A08BE0046 |
:1016B000C7003D08C6003C08C5003B08C400CB017C |
:1016C000CA015230C9008630C8008A11FB258A152C |
:1016D0000318B42ABA08031D702BB9080319EF2B9D |
:1016E000BE01BD015230BC008630BB007520013008 |
:1016F000CD00CE008A1179258A15A7018B1BA7176B |
:101700008B138A1148228A15A71B8B177708BB00F9 |
:101710007808BC007908BD007A08BE000230840059 |
:101720007A08C2007908C1007808C0007708BF00B5 |
:101730000130C3008A11B4268A15363003178D0094 |
:1017400004308F00031404300313BF008A11A12753 |
:101750008A152B08BA02BA1FAF2B3B30BA002A08F1 |
:10176000BC003C30BD0050207808053CF8002B0838 |
:101770007802BC00BD003C30BE00A3207808B90050 |
:101780002A08BC003C30BD0050207808053CF80019 |
:101790002B087802BB003908BC003C30BD0050204B |
:1017A00078083B02BA000930CD000130CE008A1122 |
:1017B00079258A153908BB000130BC0015203A3064 |
:1017C000CC008A118A258A153A08BB000130BC007A |
:1017D0001520C830CD008A11B2248A156A2BAC01BD |
:1017E000AD010C30CC008A118A258A150130CD005C |
:1017F0000230CE008A1179258A15393003178D0001 |
:1018000004308F008A110313B5258A150130CD00ED |
:10181000CE008A1179258A15A7018B1BA7178B1378 |
:101820008A1148228A15A71B8B177708BB007808F6 |
:10183000BC007908BD007A08BE00023084007A0836 |
:10184000C2007908C1007808C0007708BF000130E5 |
:10185000C3008A11B4268A15433003178D00043063 |
:101860008F00031404300313BF008A11A1278A15C7 |
:101870000A30CD000130CE008A1179258A158930D1 |
:1018800084003608C2003508C1003408C00033089F |
:10189000BF000130C3008A11B4268A1548300317EF |
:1018A0008D0004308F00031406300313BF008A112B |
:0A18B000A1278A15062C1C296300ED |
:02400E003A3F37 |
:00000001FF |
;PIC16F877A |
;CRC=4340 CREATED="28-V-11 21:54" |
/Designs/Tools/reflow2/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=C:\Program Files\PICC\devices\16F877A.h |
4=process.h |
5=C:\Program Files\PICC\drivers\math.h |
6=lcd.c |
7= |
[Units] |
Count=1 |
1=reflow (main) |
/Designs/Tools/reflow2/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/reflow2/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); |
//} |