Problem with comparison.
/Modules/TDC/GP201A/SW/PICinterface/main.c |
---|
0,0 → 1,147 |
#include "main.h" |
#define VERSION 0.1 |
#define START PIN_D4 |
#define STOP1 PIN_D5 |
#define STOP2 PIN_D6 |
#include "GP2.h" |
#define ONE_WIRE_PIN PIN_E2 |
#include "ds1820.c" |
void main() |
{ |
float temperature; |
setup_adc_ports(NO_ANALOGS|VSS_VDD); |
setup_adc(ADC_CLOCK_DIV_2); |
setup_psp(PSP_DISABLED); |
setup_spi(SPI_SS_DISABLED); |
setup_wdt(WDT_OFF); |
setup_timer_0(RTCC_INTERNAL); |
setup_timer_1(T1_DISABLED); |
setup_timer_2(T2_DISABLED,0,1); |
setup_ccp1(CCP_OFF); |
setup_comparator(NC_NC_NC_NC); |
setup_vref(FALSE); |
TDC_reset(); |
MRange=TDC_MRANGE2; |
hitin1=TDC_HITIN1_1; |
hitin2=TDC_HITIN2_0; |
hit1=TDC_MRANGE2_HIT1_START; |
hit2=TDC_MRANGE2_HIT2_1CH1; |
en_int=(TDC_INT_ALU | TDC_INT_ENDHIT | TDC_INT_TIMEOUT); |
en_err_val=TDC_ERRVAL_EN; |
delval1=0x0; |
delval2=0x0; |
delval3=0x0; |
calibrate=TDC_CALIBRATE_DIS; |
disautocal=TDC_AUTOCAL_EN; |
firenum=TDC_FIRENUM_1; |
div_fire=TDC_DIV_FIRE_2; |
Tcycle=TDC_TCYSLE_LONG; |
portnum=TDC_TPORTNUM_2; |
fakenum=TDC_TFAKENUM_2; |
TDC_update_registers(); |
output_low(START); |
output_low(STOP1); |
output_low(STOP2); |
delay_ms(50); |
//write raw register values |
/* output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x80338AE8,32); |
output_high(TDC_ENABLE); |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x81211400,32); |
output_high(TDC_ENABLE); |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x82E03200,32); |
output_high(TDC_ENABLE); |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x83083300,32); |
output_high(TDC_ENABLE); |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x84203400,32); |
output_high(TDC_ENABLE); |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x85080000,32); |
output_high(TDC_ENABLE); |
*/ |
TDC_start_cal_resonator(); |
delay_ms(50); |
printf("calibrate: %LX, %LX, %LX, %LX \r\n", TDC_get_measurement(1), TDC_get_measurement(2), TDC_get_measurement(3), TDC_get_measurement(4)); |
// TDC_start_cal(); |
// delay_ms(50); |
while(true) |
{ |
temperature = ds1820_read(); |
// TDC_init(); |
delay_ms(50); |
printf("Temp: %f \r\n", temperature); |
delay_ms(50); |
printf("status: %LX \r\n", TDC_get_status()); |
// TDC_start_cycle(); |
// delay_us(10); |
output_high(START); |
// delay_us(1); |
delay_us(100); |
// output_low(START); |
output_high(STOP1); |
// delay_us(10); |
// delay_us(500); |
// output_high(STOP1); |
// delay_us(10); |
output_low(STOP1); |
// delay_us(500); |
// output_high(STOP1); |
delay_us(10); |
// output_low(STOP1); |
output_low(START); |
// output_high(STOP2); |
// delay_us(10); |
// output_low(START); |
output_high(STOP1); |
// output_low(STOP2); |
// delay_us(500); |
// output_high(STOP2); |
// delay_us(10); |
output_low(STOP1); |
// delay_us(500); |
// output_high(STOP2); |
// delay_us(10); |
// output_low(STOP2); |
// delay_ms(10); |
TDC_start_temp(); |
delay_ms(10); |
printf("status: %LX \r\n", TDC_get_status()); |
delay_ms(50); |
printf("measured: %LX, %LX, %LX, %LX \r\n", TDC_get_measurement(1), TDC_get_measurement(2), TDC_get_measurement(3), TDC_get_measurement(4)); |
delay_ms(500); |
}; |
} |
/Modules/TDC/GP201A/SW/PICinterface/main.hex |
---|
0,0 → 1,285 |
:020000040000FA |
:10000000E7EF05F0F76A140FF66E000EF72209000D |
:10001000F550120063616C6962726174653A202563 |
:100020004C582C20254C582C20254C582C20254C45 |
:1000300058200D0A0000F76A460FF66E000EF722F0 |
:100040000900F550120054656D703A202566200DA8 |
:100050000A00F76A620FF66E000EF7220900F550EB |
:1000600012007374617475733A20254C58200D0A80 |
:100070000000F76A820FF66E000EF7220900F550B5 |
:1000800012006D656173757265643A20254C582CB9 |
:1000900020254C582C20254C582C20254C58200D20 |
:1000A0000A003C50200807E03D6E383639363A36B3 |
:1000B0003B363D2EFAD79382939093948A943CC01A |
:1000C0003DF08A843BAE8A903BBE8A803836393612 |
:1000D0003A363B368A94003601360236033681A220 |
:1000E000009081B200803D2EECD7000C93968A964A |
:1000F0003B6A3A6A396A500E386E080E3C6ED1DFA0 |
:1001000093968A8652EF06F093968A963B6A3A6AED |
:10011000396A800E386E080E3C6EC3DF3B6A3A6A5D |
:10012000396A05C038F0040E3C6EBBDF3B6A3A6AA0 |
:10013000396A06C038F0040E3C6EB3DF3B6A3A6A97 |
:10014000396A07C038F0020E3C6EABDF3B6A3A6A90 |
:10015000396A08C038F0020E3C6EA3DF3B6A3A6A87 |
:10016000396A09C038F0020E3C6E9BDF000E0AB0FF |
:10017000010E3B6A3A6A396A386E010E3C6E91DFB5 |
:10018000000E0AB2010E3B6A3A6A396A386E010EF5 |
:100190003C6E87DF000E0AB4010E3B6A3A6A396A88 |
:1001A000386E010E3C6E7DDF000E0AB6010E3B6A12 |
:1001B0003A6A396A386E010E3C6E73DF000E0AB877 |
:1001C000010E3B6A3A6A396A386E010E3C6E69DF8D |
:1001D000000E0ABA010E3B6A3A6A396A386E010E9D |
:1001E0003C6E5FDF000E0ABC010E3B6A3A6A396A58 |
:1001F000386E010E3C6E55DF000E0ABE010E3B6AE2 |
:100200003A6A396A386E010E3C6E4BDF000E0BB055 |
:10021000010E3B6A3A6A396A386E010E3C6E41DF64 |
:10022000000E0BB2010E3B6A3A6A396A386E010E53 |
:100230003C6E37DF93968A8693968A963B6A3A6A33 |
:10024000396A810E386E080E3C6E2BDF3B6A3A6AC3 |
:10025000396A0CC038F0040E3C6E23DF3B6A3A6A00 |
:10026000396A0DC038F0040E3C6E1BDF000E0BB473 |
:10027000010E3B6A3A6A396A386E010E3C6E11DF34 |
:100280003B6A3A6A396A010E386E3C6E0ADF3B6A95 |
:100290003A6A396A0EC038F0030E3C6E02DF3B6AE0 |
:1002A0003A6A396A0FC038F0030E3C6EFADE3B6AD8 |
:1002B0003A6A396A386A080E3C6EF3DE93968A868B |
:1002C00093968A963B6A3A6A396A820E386E200E95 |
:1002D0003C6EE7DE3B6A3A6A396A10C038F0030EBA |
:1002E0003C6EDFDE000E0BB6010E3B6A3A6A396ADD |
:1002F000386E010E3C6ED5DE000E0BB8010E3B6A67 |
:100300003A6A396A386E010E3C6ECBDE14C03BF09F |
:1003100013C03AF012C039F011C038F0130E3C6E21 |
:10032000C0DE93968A8693968A963B6A3A6A396AC1 |
:10033000830E386E200E3C6EB4DE3B6A3A6A396A30 |
:10034000386A020E3C6EADDE000E0BBA010E3B6A3F |
:100350003A6A396A386E010E3C6EA3DE3B6A3A6A2D |
:10036000396A15C038F0020E3C6E9BDE19C03BF0B6 |
:1003700018C03AF017C039F016C038F0130E3C6EB2 |
:1003800090DE93968A8693968A963B6A3A6A396A91 |
:10039000840E386E200E3C6E84DE3B6A3A6A396AFF |
:1003A000040E386E050E3C6E7CDE1DC03BF01CC09A |
:1003B0003AF01BC039F01AC038F0130E3C6E71DEF3 |
:1003C00093968A8693968A963B6A3A6A396A850E2C |
:1003D000386E200E3C6E65DE3B6A3A6A396A1EC092 |
:1003E00038F0030E3C6E5DDE000E0BBC010E3B6A66 |
:1003F0003A6A396A386E010E3C6E53DE000E0BBE4F |
:10040000010E3B6A3A6A396A386E010E3C6E49DE6B |
:100410003B6A3A6A396A1FC038F0030E3C6E41DE0F |
:100420003B6A3A6A21C039F020C038F0100E3C6EA9 |
:1004300038DE93968A8672EF06F0EA6A270EE96E36 |
:10044000EF500DE0060E016E006A002EFED7012E61 |
:10045000FBD77B0E006E002EFED7EF2EF3D7000CDD |
:1004600093968A963B6A3A6A396A030E386E080E8A |
:100470003C6E17DE93968A867EEF06F093968A96F8 |
:10048000B00E3224FF0F376E3B6A3A6A396A386E13 |
:10049000200E3C6E06DE3B6A3A6A396A386A200EE4 |
:1004A0003C6EFFDD015003C036F002C035F001C0E4 |
:1004B00034F000C033F093968A8633C000F034C025 |
:1004C00001F035C002F036C003F0000C939E8A9E06 |
:1004D000080E016E00D00000018E0ED0019E383251 |
:1004E000D8B08A8ED8A08A9E018C06D0019C012E9D |
:1004F000F6D700D000008A8EA70EE96EE92EFED74F |
:1005000000D001BEEBD701BCF1D7000C37BE0FD035 |
:100510000F0E006E363800160A0E005C03E2300E35 |
:10052000002602D03750002600C038F0CFDF0F0E73 |
:1005300036160A0E365C02E2300E02D0379E375075 |
:10054000362636C038F0C2DF000C030E305E09E3F9 |
:10055000EA6A300EE96EEF5004E001D000D0EF2ED1 |
:10056000FDD7000C96948D94020E2F6EF90E306E0E |
:10057000ECDF2F2EFBD79684020E2F6EF90E306E15 |
:10058000E4DF2F2EFBD79684000C306A305007082A |
:1005900019E396948D94030E006E002EFED7D8803A |
:1005A0002F3202E28D9401D08D849694630E006EFA |
:1005B000002EFED700D09684030E006E002EFED7CC |
:1005C000302AE4D7000C2F6A2F50070819E39694BD |
:1005D0008D94030E006E002EFED796840D0E006ED5 |
:1005E000002EFED7968484B402D0D89001D0D88053 |
:1005F0003032C70E006E002EFED700D02F2AE4D76F |
:1006000030C001F0000C8E0E006E30C001F02FC023 |
:1006100002F0036A30AE05D0011E021E022A01E17B |
:10062000012A015209E102C001F0026A080E005ECF |
:10063000015202E1006A0AD0D89001BE04D002360D |
:1006400001360006F9D730BE01D0019EFAEF03F063 |
:100650003350D8B4A5D03F6E3750D8B4A1D03F5E48 |
:1006600005E37F0E3F26D8B09BD006D0810E3F5EBB |
:10067000D8A096D0D8B494D03FC000F0016A026AE6 |
:10068000036A3E6A34C03DF03D8E35C03CF036C052 |
:100690003BF0190E3F6E3A503B5E0DE2010E3C5EA0 |
:1006A0000AE23D5E08E23E5E06E23E2A3D2A3C2A20 |
:1006B0003A503B2628D039503C5E12E2010E3D5E96 |
:1006C0000FE23E5E0DE23E2A3D2A39503C263A506A |
:1006D0003B2619E33C2A17E13D2A15E13E2A13D0B7 |
:1006E000385080093D5E0EE2010E3E5E0BE23E2A6E |
:1006F000385080093D2639503C26E9E33D2AE7E1A0 |
:100700003E2AE5D703803F2E01D00BD0D8903B3650 |
:100710003C363D363E36D8900336023601364036FA |
:10072000BAD740A006D0D89001320232033240320C |
:1007300002D0000635E040BE1ED0D8903B363C3695 |
:100740003D363E363A503B5E07E2010E3C5E04E227 |
:100750003D5E02E23E5E1AE339503C5E05E2010E68 |
:100760003D5E02E23E5E12E3385080093D5E03E2E8 |
:10077000010E3E5E0BE3032A09E1022A07E1012A8A |
:1007800005E1002A0DE001320232033234C03FF0AD |
:1007900038503F1A3FAE02D0018E06D0019E04D0E1 |
:1007A000006A016A026A036A10EF04F0266ADADE60 |
:1007B000CC0E2F6EEADE440E2F6EE7DE265204E1E9 |
:1007C00002DF01C026F0FAD7CDDECC0E2F6EDDDEC3 |
:1007D000BE0E2F6EDADEF7DE01C027F0F4DE01C0B8 |
:1007E00028F028C02AF027C029F02AC030F029C0FC |
:1007F0002FF009D700C02FF001C030F002C031F057 |
:1008000003C032F003C036F002C035F001C034F04E |
:1008100000C033F03A6A396A386A830E376E18D7E7 |
:1008200003C02EF002C02DF001C02CF000C02BF050 |
:100830002BC000F02CC001F02DC002F02EC003F040 |
:1008400043EF07F03350D8B471D0006E3750D8B4AE |
:100850006DD0002604E3810E002668E204D07F0EEE |
:10086000005E64E363E034C03BF038503B1A348EE2 |
:10087000388E36503A02F4CF3DF035503902F4CF7D |
:1008800003F0F3CF3CF03A02F3503D26F4503C2203 |
:10089000000E032236503902F3503D26F4503C221C |
:1008A000000E026A0322022234503A02F3503C2620 |
:1008B000F4500322000E022234503902F350032672 |
:1008C000F4500222000E016A012236503802F35021 |
:1008D0003C26F4500322000E022201223550380239 |
:1008E000F3500326F4500222000E01223450380245 |
:1008F000F3500226F4500122002A01BE05D03C36F6 |
:100900000336023601360006000E3CAE0AD0032A3A |
:1009100002220122015005E1025003E1035001E1EE |
:10092000002A3BBE018E3BAE019E04D0006A016AE4 |
:10093000026A036A0DEF05F03350B608336E036A9E |
:1009400034C037F0348ED8903432353236320332F8 |
:10095000023201320032332EF6D737AE0BD0001EF2 |
:10096000011E021E031E002AD8B4012AD8B4022A8E |
:10097000D8B4032A20EF05F0006A016A026A036A0C |
:100980003B6A3C6A3D6A3E6A3A503910381037106B |
:100990002CE0200E3F6ED89033363436353636365E |
:1009A0003B363C363D363E363A503E5C08E13950E7 |
:1009B0003D5C05E138503C5C02E137503B5C0FE3A5 |
:1009C00037503B5E3850D8A0383C3C5E3950D8A0F8 |
:1009D000393C3D5E3A50D8A03A3C3E5ED880003665 |
:1009E0000136023603363F2ED6D7EA6A3B0EE96E51 |
:1009F000000CE9502B6E2A502D6E19E029C036F0FC |
:100A000028C035F027C034F026C033F03A6A396A7E |
:100A1000200E386E820E376E15D703C029F002C043 |
:100A200028F001C027F000C026F02D2EE7D729C0FE |
:100A300036F028C035F027C034F026C033F07CD71C |
:100A400003C029F002C028F001C027F000C026F042 |
:100A500029AE0DD02B062B8A261E271E281E291EE6 |
:100A6000262AD8B4272AD8B4282AD8B4292A3B0E53 |
:100A7000326E9A0E316ECA0E306E2F6A0A0E2D6ECD |
:100A80002A50D8B42B2A29C036F028C035F027C008 |
:100A900034F026C033F032C03AF031C039F030C003 |
:100AA00038F02FC037F068DF0150EFCF26F0ECCFE1 |
:100AB00027F0ECCF28F0ECCF29F000520FE12A28E4 |
:100AC0002D5C0CE02B500CE00F0B2D5C01E037E2AD |
:100AD0002BBE35D02BBC04D0200E2DD0200E2B16D3 |
:100AE0002BAA0CD02B9A2A50D8A42B0600502B6E80 |
:100AF0002D0E386EEBDC2B50006E2B6A2A502D5CCD |
:100B00000AE100502B6E2E0E386EE0DC2B50006E8A |
:100B1000200E2B16000E300E2BAA0DD02B9A2A5029 |
:100B2000D8A42B0600502B6E2D0E386ECFDC2B5028 |
:100B3000006E2B6A300E002600C038F0C7DC32C0D1 |
:100B400036F031C035F030C034F02FC033F03A6A9F |
:100B5000396A386A0A0E376E0FDF03C032F002C0FE |
:100B600031F001C030F000C02FF02D2E8CD768EF8F |
:100B700007F093968A963B6A3A6A396AB40E386EE1 |
:100B8000080E3C6E51EC00F03B6A3A6A396A386AEA |
:100B9000100E3C6E51EC00F0015001C027F000C077 |
:100BA00026F093968A8626C001F027C002F0000C3A |
:100BB00093968A963B6A3A6A396A020E386E080E34 |
:100BC0003C6E51EC00F093968A86B8EF07F0F86A15 |
:100BD000D09EEA6AE96A939E8A8E93829390939458 |
:100BE0008A94C150C00B0F09C16E070EB46E056A1E |
:100BF000010E066E076A086A096E0A800A920A9454 |
:100C00000A860A880A9A0A8C0A9E0B900B92050E95 |
:100C10000C6E0D6E0B940E6A0F6A010E106E0B9621 |
:100C20000B98116A126A136A146A0B9A030E156EF6 |
:100C3000166A176A186A196A1A6A1B6A1C6A1D6A98 |
:100C40001E6A0B9C0B8E1F6A206A216AC150C00B62 |
:100C50000F09C16EC090C092C094C09EC280B0986F |
:100C6000C69A949E93809392010EC66E000EC76E34 |
:100C7000D190800ED56ECD6A000ECA6E000ECB6E7E |
:100C80009484BD6AB76AB66A070EB46E9250926ECB |
:100C9000100E006E002EFED70000B450A19CB56A65 |
:100CA00076EF00F00A8C010E0F6E0E6A0D6E020ECA |
:100CB0000C6E070E106E0B8A146A136A126A116AA0 |
:100CC000196A186A176A166A1D6A1C6A1B6A1A6A08 |
:100CD0000A980A9A010E056E066E0A820A900A9414 |
:100CE00084EF00F095988C98959A8C9A959C8C9CA2 |
:100CF000320E276E1DEC02F030EF02F0320E276E3E |
:100D00001DEC02F0010E326E3EEC02F003C029F041 |
:100D100002C028F001C027F000C026F0020E326E9B |
:100D20003EEC02F003C02DF002C02CF001C02BF00D |
:100D300000C02AF0030E326E3EEC02F003C031F028 |
:100D400002C030F001C02FF000C02EF0040E326E51 |
:100D50003EEC02F003C035F002C034F001C033F0C5 |
:100D600000C032F0366A365002EC00F0362A006ECF |
:100D7000386E66EC02F00B0E365CF5E129C036F0F9 |
:100D8000370E376E86EC02F028C036F0370E376E1D |
:100D900086EC02F027C036F0370E376E86EC02F094 |
:100DA00026C036F0370E376E86EC02F02C0E386E09 |
:100DB00066EC02F0200E386E66EC02F02DC036F0C4 |
:100DC000370E376E86EC02F02CC036F0370E376ED9 |
:100DD00086EC02F02BC036F0370E376E86EC02F050 |
:100DE0002AC036F0370E376E86EC02F02C0E386EC5 |
:100DF00066EC02F0200E386E66EC02F031C036F080 |
:100E0000370E376E86EC02F030C036F0370E376E94 |
:100E100086EC02F02FC036F0370E376E86EC02F00B |
:100E20002EC036F0370E376E86EC02F02C0E386E80 |
:100E300066EC02F0200E386E66EC02F035C036F03B |
:100E4000370E376E86EC02F034C036F0370E376E50 |
:100E500086EC02F033C036F0370E376E86EC02F0C7 |
:100E600032C036F0370E376E86EC02F0200E386E48 |
:100E700066EC02F00D0E386E66EC02F00A0E386E6B |
:100E800066EC02F093D403C025F002C024F001C048 |
:100E900023F000C022F0320E276E1DEC02F0266A0D |
:100EA00026501BEC00F0262A006E386E66EC02F02D |
:100EB000060E265CF5E1890EE96E25C029F024C0F6 |
:100EC00028F023C027F022C026F0020E2A6E91D50A |
:100ED000200E386E66EC02F00D0E386E66EC02F0F5 |
:100EE0000A0E386E66EC02F0320E276E1DEC02F030 |
:100EF00040DE02C027F001C026F0286A285029EC05 |
:100F000000F0282A006E386E66EC02F0080E285CAD |
:100F1000F5E127C036F0370E376E86EC02F026C0BA |
:100F200036F0370E376E86EC02F0200E386E66EC27 |
:100F300002F00D0E386E66EC02F00A0E386E66ECAA |
:100F400002F095988C88A60E006E002EFED7000049 |
:100F5000959A8C8A959A8C9A100E006E002EFED768 |
:100F6000000095988C98959A8C8A959A8C9A20D6A0 |
:100F70000A0E276E1DEC02F0FCDD02C027F001C056 |
:100F800026F0286A285029EC00F0282A006E386ED6 |
:100F900066EC02F0080E285CF5E127C036F0370E4B |
:100FA000376E86EC02F026C036F0370E376E86ECD0 |
:100FB00002F0200E386E66EC02F00D0E386E66EC14 |
:100FC00002F00A0E386E66EC02F0320E276E1DEC4F |
:100FD00002F0010E326E3EEC02F003C029F002C0B6 |
:100FE00028F001C027F000C026F0020E326E3EEC61 |
:100FF00002F003C02DF002C02CF001C02BF000C0A5 |
:101000002AF0030E326E3EEC02F003C031F002C053 |
:1010100030F001C02FF000C02EF0040E326E3EEC16 |
:1010200002F003C035F002C034F001C033F000C05C |
:1010300032F0366A365039EC00F0362A006E386EDF |
:1010400066EC02F00A0E365CF5E129C036F0370E88 |
:10105000376E86EC02F028C036F0370E376E86EC1D |
:1010600002F027C036F0370E376E86EC02F026C04D |
:1010700036F0370E376E86EC02F02C0E386E66ECCA |
:1010800002F0200E386E66EC02F02DC036F0370EFE |
:10109000376E86EC02F02CC036F0370E376E86ECD9 |
:1010A00002F02BC036F0370E376E86EC02F02AC005 |
:1010B00036F0370E376E86EC02F02C0E386E66EC8A |
:1010C00002F0200E386E66EC02F031C036F0370EBA |
:1010D000376E86EC02F030C036F0370E376E86EC95 |
:1010E00002F02FC036F0370E376E86EC02F02EC0BD |
:1010F00036F0370E376E86EC02F02C0E386E66EC4A |
:1011000002F0200E386E66EC02F035C036F0370E75 |
:10111000376E86EC02F034C036F0370E376E86EC50 |
:1011200002F033C036F0370E376E86EC02F032C074 |
:1011300036F0370E376E86EC02F0200E386E66EC15 |
:1011400002F00D0E386E66EC02F00A0E386E66EC98 |
:1011500002F0020E266EFA0E276E1DEC02F0262E0D |
:06116000FAD790D603004F |
:020000040030CA |
:0E00000027CC390E0087A1000FC00FE00F4083 |
:00000001FF |
;PIC18F4550 |
;CRC=4DBD CREATED="01-II-11 14:45" |
/Modules/TDC/GP201A/SW/PICinterface/main.pjt |
---|
0,0 → 1,30 |
[PROJECT] |
Target=.\main.hex |
Development_Mode= |
Processor_Text=PIC18F4550 |
ToolSuite=CCS |
Processor=0x4550 |
[.\main] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=.\main.c |
[Windows] |
0=0000 %S 0 0 796 451 3 0 |
[Opened Files] |
1=.\main.c |
2= |
3=GP2.h |
4= |
5= |
6= |
[Target Data] |
OptionString=-p +FH |
FileList=D:\MLAB\Modules\TDC\GP201A\SW\PICinterface\.\main.c |
[Units] |
Count=1 |
1=.\main.c (main) |
/Modules/TDC/GP201A/SW/PICinterface/GP2.h |
---|
0,0 → 1,152 |
//register 0 |
#define TDC_NEG_START_INV 1 |
#define TDC_NEG_START 0 |
#define TDC_NEG_STOP1_INV 1 |
#define TDC_NEG_STOP1 0 |
#define TDC_NEG_STOP2_INV 1 |
#define TDC_NEG_STOP2 0 |
#define TDC_MRANGE1 0 |
#define TDC_MRANGE2 1 |
#define TDC_AUTOCAL_EN 0 |
#define TDC_AUTOCAL_DIS 1 |
#define TDC_CALIBRATE_EN 1 |
#define TDC_CALIBRATE_DIS 0 |
#define TDC_TSELCLK_32KHZ 0 |
#define TDC_TSELCLK_128HS 1 |
#define TDC_TFAKENUM_2 0 |
#define TDC_TFAKENUM_8 1 |
#define TDC_TCYCLE_SHORT 0 |
#define TDC_TCYSLE_LONG 1 |
#define TDC_TPORTNUM_2 0 |
#define TDC_TPORTNUM_4 1 |
#define TDC_CLKHS_OFF 0 |
#define TDC_CLKHS_ON 1 |
#define TDC_CLKHS_640US 2 |
#define TDC_CLKHS_1280US 4 |
#define TDC_CLKHSDIV_1 0 |
#define TDC_CLKHSDIV_2 1 |
#define TDC_CLKHSDIV_4 2 |
#define TDC_CLKHSDIV_8 3 |
#define TDC_CALPERIODS_2 0 |
#define TDC_CALPERIODS_4 1 |
#define TDC_CALPERIODS_8 2 |
#define TDC_CALPERIODS_16 3 |
#define TDC_DIV_FIRE_2 1 |
#define TDC_DIV_FIRE_3 2 |
#define TDC_DIV_FIRE_4 3 |
#define TDC_DIV_FIRE_5 4 |
#define TDC_DIV_FIRE_6 5 |
#define TDC_DIV_FIRE_7 6 |
#define TDC_DIV_FIRE_8 7 |
#define TDC_DIV_FIRE_9 8 |
#define TDC_DIV_FIRE_10 9 |
#define TDC_DIV_FIRE_11 10 |
#define TDC_DIV_FIRE_12 11 |
#define TDC_DIV_FIRE_13 12 |
#define TDC_DIV_FIRE_14 13 |
#define TDC_DIV_FIRE_15 14 |
#define TDC_DIV_FIRE_16 15 |
#define TDC_FIRENUM_0 0 |
#define TDC_FIRENUM_1 1 |
#define TDC_FIRENUM_2 2 |
#define TDC_FIRENUM_3 3 |
#define TDC_FIRENUM_4 4 |
#define TDC_FIRENUM_5 5 |
#define TDC_FIRENUM_6 6 |
#define TDC_FIRENUM_7 7 |
#define TDC_FIRENUM_8 8 |
#define TDC_FIRENUM_9 9 |
#define TDC_FIRENUM_10 10 |
#define TDC_FIRENUM_11 11 |
#define TDC_FIRENUM_12 12 |
#define TDC_FIRENUM_13 13 |
#define TDC_FIRENUM_14 14 |
#define TDC_FIRENUM_15 15 |
//register 1 |
#define TDC_HITIN1_0 0 |
#define TDC_HITIN1_1 1 |
#define TDC_HITIN1_2 2 |
#define TDC_HITIN1_3 3 |
#define TDC_HITIN1_4 4 |
#define TDC_HITIN2_0 0 |
#define TDC_HITIN2_1 1 |
#define TDC_HITIN2_2 2 |
#define TDC_HITIN2_3 3 |
#define TDC_HITIN2_4 4 |
#define TDC_FAST_INIT_EN 1 |
#define TDC_FAST_INIT_DIS 0 |
#define TDC_MRANGE1_HIT1_START 0 |
#define TDC_MRANGE1_HIT1_1CH1 1 |
#define TDC_MRANGE1_HIT1_2CH1 2 |
#define TDC_MRANGE1_HIT1_3CH1 3 |
#define TDC_MRANGE1_HIT1_4CH1 4 |
#define TDC_MRANGE1_HIT1_NOAC 5 |
#define TDC_MRANGE1_HIT1_CAL1CH1 6 |
#define TDC_MRANGE1_HIT1_CAL2CH1 7 |
#define TDC_MRANGE1_HIT1_1CH2 9 |
#define TDC_MRANGE1_HIT1_2CH2 0xA |
#define TDC_MRANGE1_HIT1_3CH2 0xB |
#define TDC_MRANGE1_HIT1_4CH2 0xC |
#define TDC_MRANGE2_HIT1_START 1 |
#define TDC_MRANGE1_HIT2_START 0 |
#define TDC_MRANGE1_HIT2_1CH1 1 |
#define TDC_MRANGE1_HIT2_2CH1 2 |
#define TDC_MRANGE1_HIT2_3CH1 3 |
#define TDC_MRANGE1_HIT2_4CH1 4 |
#define TDC_MRANGE1_HIT2_NOAC 5 |
#define TDC_MRANGE1_HIT2_CAL1CH1 6 |
#define TDC_MRANGE1_HIT2_CAL2CH1 7 |
#define TDC_MRANGE1_HIT2_1CH2 9 |
#define TDC_MRANGE1_HIT2_2CH2 0xA |
#define TDC_MRANGE1_HIT2_3CH2 0xB |
#define TDC_MRANGE1_HIT2_4CH2 0xC |
#define TDC_MRANGE2_HIT2_1CH1 2 |
#define TDC_MRANGE2_HIT2_2CH1 3 |
#define TDC_MRANGE2_HIT2_3CH1 4 |
//register 2 |
#define TDC_INT_TIMEOUT 4 |
#define TDC_INT_ENDHIT 2 |
#define TDC_INT_ALU 1 |
#define TDC_CH1EDGE_RIS 0 |
#define TDC_CH1EDGE_FAL 1 |
#define TDC_CH2EDGE_RIS 0 |
#define TDC_CH2EDGE_FAL 1 |
//register 3 |
#define TDC_TIM0MR2_256CLKHS 0 |
#define TDC_TIM0MR2_1024CLKHS 1 |
#define TDC_TIM0MR2_4096CLKHS 2 |
#define TDC_TIM0MR2_16384CLKHS 3 |
#define TDC_ERRVAL_EN 1 |
#define TDC_ERRVAL_DIS 0 |
//register 5 |
#define TDC_REPEAT_FIRE_0 0 |
#define TDC_REPEAT_FIRE_1 1 |
#define TDC_REPEAT_FIRE_2 2 |
#define TDC_REPEAT_FIRE_3 3 |
#define TDC_REPEAT_FIRE_4 4 |
#define TDC_REPEAT_FIRE_5 5 |
#define TDC_REPEAT_FIRE_6 6 |
#define TDC_REPEAT_FIRE_7 7 |
#define TDC_PHASENOISE_EN 0 |
#define TDC_PHASENOISE_DIS 1 |
#define TDC_STARTNOISE_EN 1 |
#define TDC_STARTNOISE_DIS 0 |
#include "GP2.c" |
/Modules/TDC/GP201A/SW/PICinterface/GP2.c |
---|
0,0 → 1,198 |
//struct { |
unsigned int8 firenum=TDC_FIRENUM_0; |
unsigned int8 div_fire=TDC_DIV_FIRE_2; |
unsigned int8 calresnum=TDC_CALPERIODS_2; |
unsigned int8 clkhsdiv=TDC_CLKHSDIV_1; |
unsigned int8 start_clkhs=TDC_CLKHS_ON; |
unsigned int1 portnum=TDC_TPORTNUM_4; |
unsigned int1 Tcycle=TDC_TCYCLE_SHORT; |
unsigned int1 fakenum=TDC_TFAKENUM_2; |
unsigned int1 selclkT=TDC_TSELCLK_128HS; |
unsigned int1 calibrate=TDC_CALIBRATE_EN; |
unsigned int1 disautocal=TDC_AUTOCAL_EN; |
unsigned int1 MRange=TDC_MRANGE2; |
unsigned int1 neg_stop2=TDC_NEG_STOP2; |
unsigned int1 neg_stop1=TDC_NEG_STOP1; |
unsigned int1 neg_start=TDC_NEG_START; |
//}reg0; |
//struct { |
unsigned int hit2=TDC_MRANGE1_HIT2_NOAC; |
unsigned int hit1=TDC_MRANGE1_HIT1_NOAC; |
unsigned int1 fast_init=TDC_FAST_INIT_DIS; |
unsigned int hitin2=TDC_HITIN2_0; |
unsigned int hitin1=TDC_HITIN1_0; |
//}reg1; |
//struct { |
unsigned int en_int=TDC_INT_ALU; |
unsigned int1 rfedge2=TDC_CH2EDGE_RIS; |
unsigned int1 rfedge1=TDC_CH1EDGE_RIS; |
unsigned int32 delval1=0; |
//}reg2; |
//struct { |
unsigned int1 en_err_val=TDC_ERRVAL_DIS; |
unsigned int tim0_mr2=TDC_TIM0MR2_16384CLKHS; |
unsigned int32 delval2=0; |
//}reg3; |
//reg4 |
unsigned int32 delval3=0; |
//reg5 |
unsigned int conf_fire=0; |
unsigned int1 en_startnoise=TDC_STARTNOISE_DIS; |
unsigned int1 dis_phasenoise=TDC_PHASENOISE_DIS; |
unsigned int repeat_fire=TDC_REPEAT_FIRE_0; |
unsigned int16 phase_fire=0; |
//}TDC_registers; |
void TDC_init() |
{ |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x70,8); |
output_high(TDC_ENABLE); |
} |
void TDC_reset() |
{ |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x50,8); |
output_high(TDC_ENABLE); |
} |
void TDC_start_cycle() |
{ |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x01,8); |
output_high(TDC_ENABLE); |
} |
void TDC_start_temp() |
{ |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x02,8); |
output_high(TDC_ENABLE); |
} |
void TDC_start_cal_resonator() |
{ |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x03,8); |
output_high(TDC_ENABLE); |
} |
void TDC_start_cal() |
{ |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x04,8); |
output_high(TDC_ENABLE); |
} |
unsigned int32 TDC_get_measurement(int num) |
{ |
unsigned int32 ret; |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0xB0 + num - 1); |
ret=spi_xfer(TDC_stream,0,32); |
output_high(TDC_ENABLE); |
return ret; |
} |
unsigned int16 TDC_get_status() |
{ |
unsigned int16 ret; |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0xB4,8); |
ret=spi_xfer(TDC_stream,0,16); |
output_high(TDC_ENABLE); |
return ret; |
} |
unsigned int8 TDC_get_reg1() |
{ |
unsigned int8 ret; |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0xB5,8); |
ret=spi_xfer(TDC_stream,0,8); |
output_high(TDC_ENABLE); |
return ret; |
} |
void TDC_update_registers() |
{ |
//update reg0 |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x80,8); |
spi_xfer(TDC_stream,firenum,4); |
spi_xfer(TDC_stream,div_fire,4); |
spi_xfer(TDC_stream,calresnum,2); |
spi_xfer(TDC_stream,clkhsdiv,2); |
spi_xfer(TDC_stream,start_clkhs,2); |
spi_xfer(TDC_stream,portnum,1); |
spi_xfer(TDC_stream,Tcycle,1); |
spi_xfer(TDC_stream,fakenum,1); |
spi_xfer(TDC_stream,selclkT,1); |
spi_xfer(TDC_stream,calibrate,1); |
spi_xfer(TDC_stream,disautocal,1); |
spi_xfer(TDC_stream,MRange,1); |
spi_xfer(TDC_stream,neg_stop2,1); |
spi_xfer(TDC_stream,neg_stop1,1); |
spi_xfer(TDC_stream,neg_start,1); |
output_high(TDC_ENABLE); |
// update reg1 |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x81,8); |
spi_xfer(TDC_stream,hit2,4); |
spi_xfer(TDC_stream,hit1,4); |
spi_xfer(TDC_stream,fast_init,1); |
spi_xfer(TDC_stream,1,1); |
spi_xfer(TDC_stream,hitin2,3); |
spi_xfer(TDC_stream,hitin1,3); |
spi_xfer(TDC_stream,0,8); |
output_high(TDC_ENABLE); |
// update reg2 |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x82); |
spi_xfer(TDC_stream,en_int,3); |
spi_xfer(TDC_stream,rfedge2,1); |
spi_xfer(TDC_stream,rfedge1,1); |
spi_xfer(TDC_stream,delval1,19); |
output_high(TDC_ENABLE); |
// update reg3 |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x83); |
spi_xfer(TDC_stream,0,2); |
spi_xfer(TDC_stream,en_err_val,1); |
spi_xfer(TDC_stream,tim0_mr2,2); |
spi_xfer(TDC_stream,delval2,19); |
output_high(TDC_ENABLE); |
// update reg4 |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x84); |
spi_xfer(TDC_stream,0b00100,5); |
spi_xfer(TDC_stream,delval3,19); |
output_high(TDC_ENABLE); |
// update reg5 |
output_low(TDC_ENABLE); |
spi_xfer(TDC_stream,0x85); |
spi_xfer(TDC_stream,conf_fire,3); |
spi_xfer(TDC_stream,en_startnoise,1); |
spi_xfer(TDC_stream,dis_phasenoise,1); |
spi_xfer(TDC_stream,repeat_fire,3); |
spi_xfer(TDC_stream,phase_fire,16); |
output_high(TDC_ENABLE); |
} |
/Modules/TDC/GP201A/SW/PICinterface/1wire.c |
---|
0,0 → 1,43 |
void onewire_reset() |
{ |
output_low(ONE_WIRE_PIN); |
delay_us(500); |
output_float(ONE_WIRE_PIN); |
delay_us(500); |
output_float(ONE_WIRE_PIN); |
} |
void onewire_write(int data) |
{ |
int count; |
for (count=0; count<8; ++count) |
{ |
output_low(ONE_WIRE_PIN); |
delay_us( 2 ); |
output_bit(ONE_WIRE_PIN, shift_right(&data,1,1)); |
delay_us( 60 ); |
output_float(ONE_WIRE_PIN); |
delay_us( 2 ); |
} |
} |
int onewire_read() |
{ |
int count, data; |
for (count=0; count<8; ++count) |
{ |
output_low(ONE_WIRE_PIN); |
delay_us( 2 ); |
output_float(ONE_WIRE_PIN); |
delay_us( 8 ); |
shift_right(&data,1,input(ONE_WIRE_PIN)); |
delay_us( 120 ); |
} |
return( data ); |
} |
/Modules/TDC/GP201A/SW/PICinterface/ds1820.c |
---|
0,0 → 1,25 |
#include "1wire.c" |
float ds1820_read() |
{ |
int8 busy=0, temp1, temp2; |
signed int16 temp3; |
float result; |
onewire_reset(); |
onewire_write(0xCC); |
onewire_write(0x44); |
while (busy == 0) busy = onewire_read(); |
onewire_reset(); |
onewire_write(0xCC); |
onewire_write(0xBE); |
temp1 = onewire_read(); |
temp2 = onewire_read(); |
temp3 = make16(temp2, temp1); |
result = (float) temp3 / 16.0; //calculation pro DS18B20 with 0.1 deg C |
return(result); |
} |
/Modules/TDC/GP201A/SW/PICinterface/main.h |
---|
0,0 → 1,41 |
#include <18F4550.h> |
#device adc=8 |
#FUSES NOWDT //No Watch Dog Timer |
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale |
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) |
#FUSES NOPROTECT //Code not protected from reading |
#FUSES NOBROWNOUT //No brownout reset |
#FUSES BORV20 //Brownout reset at 2.0V |
#FUSES NOPUT //No Power Up Timer |
#FUSES NOCPD //No EE protection |
#FUSES STVREN //Stack full/underflow will cause reset |
#FUSES NODEBUG //No Debug mode for ICD |
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O |
#FUSES NOWRT //Program memory not write protected |
#FUSES NOWRTD //Data EEPROM not write protected |
#FUSES IESO //Internal External Switch Over mode enabled |
#FUSES FCMEN //Fail-safe clock monitor enabled |
#FUSES PBADEN //PORTB pins are configured as analog input channels on RESET |
#FUSES NOWRTC //configuration not registers write protected |
#FUSES NOWRTB //Boot block not write protected |
#FUSES NOEBTR //Memory not protected from table reads |
#FUSES NOEBTRB //Boot block not protected from table reads |
#FUSES NOCPB //No Boot Block code protection |
#FUSES MCLR //Master Clear pin enabled |
#FUSES LPT1OSC //Timer1 configured for low-power operation |
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode) |
#FUSES PLL12 //Divide By 12(48MHz oscillator input) |
#FUSES CPUDIV1 //System Clock by 1 |
#FUSES USBDIV //USB clock source comes from PLL divide by 2 |
#FUSES VREGEN //USB voltage regulator enabled |
#FUSES ICPRT //ICPRT enabled |
#use delay(clock=20000000) |
#use rs232(baud=9600,parity=N,xmit=PIN_B7,rcv=PIN_B6,bits=8) |
#define TDC_ENABLE PIN_B3 //enable pin for SPI communication with TDC |
#use spi(DI=PIN_B1, DO=PIN_B0, CLK=PIN_B2, stream=TDC_stream, bits=32) // uses software SPI |