Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 470 → Rev 471

/programy/C/PIC_C/mereni/teplomer/main.c
14,23 → 14,16
#include "1wire.c"
#include "ds1820.c"
 
void main()
int temp; // zaokrouhlena teplota
 
#int_RTCC
RTCC_isr()
{
long duty; // strida PWM
int temp; // zaokrouhlena teplota
int znak; // zobrazovany znak
int i; // i pro for
int znak1; // hodnota jednotek
int znak2; // hodnota desitek
int znak; // zobrazovany znak
int i, n; // i pro for
 
 
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
 
while(TRUE)
{
temp = ds1820_read();
 
 
if (temp<10)
{ //pro teploty 0-10°C
znak1=temp;
42,34 → 35,57
znak1=temp-znak2*10; //jednotky rozdil teploty a desitek
}
 
for (i=0;i<2;i++)
{ //cyklus zobrazeni udaje
if (i==0) {
output_low(LED_K2); //dva bloky pro sepnuti aktivniho segmentu na 1
output_high(LED_K1);
znak=znak1;
}
if (i==1) {
if (znak1==1) output_b(0b11110011); //blok if pro rozeznani zobrazeneho znaku
if (znak1==2) output_b(0b01001001);
if (znak1==3) output_b(0b01100001);
if (znak1==4) output_b(0b00110011);
if (znak1==5) output_b(0b00100101);
if (znak1==6) output_b(0b00000101);
if (znak1==7) output_b(0b11110001);
if (znak1==8) output_b(0b00000001);
if (znak1==9) output_b(0b00100001);
if (znak1==0) output_b(0b10000001);
output_low(LED_K1);
output_high(LED_K2);
znak=znak2;
}
if (znak==1) output_b(0b11110011); //blok if pro rozeznani zobrazeneho znaku
if (znak==2) output_b(0b01001001);
if (znak==3) output_b(0b01100001);
if (znak==4) output_b(0b00110011);
if (znak==5) output_b(0b00100101);
if (znak==6) output_b(0b00000101);
if (znak==7) output_b(0b11110001);
if (znak==8) output_b(0b00000001);
if (znak==9) output_b(0b00100001);
if (znak==0) output_b(0b10000001);
Delay_ms(10);
}
if (znak2==1) output_b(0b11110011); //blok if pro rozeznani zobrazeneho znaku
if (znak2==2) output_b(0b01001001);
if (znak2==3) output_b(0b01100001);
if (znak2==4) output_b(0b00110011);
if (znak2==5) output_b(0b00100101);
if (znak2==6) output_b(0b00000101);
if (znak2==7) output_b(0b11110001);
if (znak2==8) output_b(0b00000001);
if (znak2==9) output_b(0b00100001);
if (znak2==0) output_b(0b10000001);
}
 
void main()
{
long duty; // strida PWM
 
 
setup_adc_ports(NO_ANALOGS|VSS_VDD); // parametry
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator(False);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
 
while(TRUE)
{
temp = 19;
 
 
 
 
// duty=104+(2,31*temperature); // .000416/(16*(1/4000000)) ....PWM presne podle helpu
// set_pwm1_duty(duty);
}
/programy/C/PIC_C/mereni/teplomer/main.h
1,9 → 1,18
#include <16F84.h>
#include <16F88.h>
#device adc=8
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz
#FUSES INTRC //Crystal osc <= 4mhz
#FUSES NOPUT //No Power Up Timer
#FUSES NOMCLR //Master Clear pin used for I/O
#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
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOFCMEN //Fail-safe clock monitor disabled
#FUSES NOIESO //Internal External Switch Over mode disabled
 
#use delay(clock=4000000)
#use delay(clock=8000000)
 
/programy/C/PIC_C/mereni/teplomer/main.hex
1,70 → 1,53
:1000000000308A006C290000831685118312851147
:10001000A6308C008C0B0A28000083168515A630AC
:1000200083128C008C0B1228000083168515831216
:100030000034A4012408073C031C3B2883168511C7
:1000400083128511000000000314A30C03182A2852
:1000500085112B28851583168511133083128C008A
:100060008C0B30280000000083168515000000006E
:100070008312A40A1A280034A3012308073C031C96
:1000800060288316851183128511000000008316F5
:100090008515023083128C008C0B4C2800008316CF
:1000A0008515831285195628031057280314A40CAC
:1000B00027308C008C0B5A2800000000A30A3D2832
:1000C00024088D000034240826068039A800A41FC7
:1000D0006E28A309A409A30A0319A40AA61F752858
:1000E000A509A609A50A0319A60A8D018E018C018E
:1000F0008F012608031D7F28250803199928103031
:10010000A7000310A30DA40D8C0D8F0D26080F0260
:10011000031D8C2825080C02031C952825088C0239
:10012000031C8F0326088F0203148D0D8E0DA70B61
:1001300081280000A81FA1288D098E098D0A0319A6
:100140008E0AE8288E308C0024088D0023088E004B
:100150008F018D08031DB6280E088D008E01083012
:100160008C028D08031DB6288C01BE2803108D1B40
:10017000BD288E0D8D0D8C03B6288D130000EC2844
:100180009A010420CC30A30019204430A300192088
:100190009A08031DCF283C200D089A00C828042087
:1001A000CC30A3001920BE30A30019203C200D083C
:1001B0009B003C200D089C001C089E001B089D0015
:1001C0001E08A4001D08A300A6011030A500632886
:1001D0000D08A401A300A2280F08A2000E08A10088
:1001E0000D08A0000C089F001F088C0020088D003F
:1001F00021088E0022088F0076298E308C001A0884
:100200008C021B088E001C088D008E178C080319A9
:10021000142903108E08031D10298D0803191429B1
:100220008E0C8D0C8C0B09299B1F1B298D098E09A7
:100230008D0A03198E0A00007F291B088D011A02FE
:10024000031825291A088C0031298C0108309C00DC
:100250009A0D8C0D1B080C0203188C008D0D9C0B45
:1002600028298E298C018D011A0803101B188C0770
:100270008C0C8D0C9B188C078C0C8D0C1B198C070F
:100280008C0C8D0C9B198C078C0C8D0C1B1A8C07FD
:100290008C0C8D0C9B1A8C078C0C8D0C1B1B8C07EB
:1002A0008C0C8D0C9B1B8C078C0C8D0C95291A309B
:1002B0008400000803196B2901308D008C018C0B20
:1002C0005F298D0B5E294A308C008C0B652900005C
:1002D0000000800B5C29102A84011F3083058316DF
:1002E0000108C739083881008312C0280F089D0013
:1002F0000E089C000D089B000C089A00FD280D08B4
:1003000094001408093C031C8929140895009601DF
:10031000982914089A000A309B001D290D089600A0
:1003200016089A000A309B0032290D081402950025
:1003300098011808013C031C122A9808031DAA29D9
:1003400083168510831285108316051183120515F7
:1003500015089700180BB62983160511831205118D
:10036000831685108312851416089700170BBD2974
:1003700083168601F330831286001708023C031DA2
:10038000C629831686014930831286001708033C6C
:10039000031DCF298316860161308312860017085A
:1003A000043C031DD829831686013330831286004E
:1003B0001708053C031DE1298316860125308312A9
:1003C00086001708063C031DEA29831686010530BE
:1003D000831286001708073C031DF3298316860144
:1003E000F130831286001708083C031DFC29831690
:1003F00086010130831286001708093C031D052A77
:10040000831686012130831286009708031D0D2A6A
:10041000831686018130831286000A309A0057299C
:0A042000980A9929831674296300D5
:02400E00F93F78
:1000000000308A0049290000FF00030E8301A1008F
:100010007F08A0000A08A8008A01A00E0408A20018
:100020007708A3007808A4007908A5007A08A6003C
:100030007B08A700831383128B1E20280B193328FB
:10004000220884002308F7002408F8002508F90096
:100050002608FA002708FB0028088A00210E8300E2
:10006000FF0E7F0E09008A1171283108F801300255
:1000700003183D283008F7004928F7010830B2007E
:10008000B00DF70D310877020318F700F80DB20B29
:1000900040288A117E28F701F80130080310311832
:1000A000F707F70CF80CB118F707F70CF80C311933
:1000B000F707F70CF80CB119F707F70CF80C311A21
:1000C000F707F70CF80CB11AF707F70CF80C311B0F
:1000D000F707F70CF80CB11BF707F70CF80C8A11AF
:1000E00085282908093C031C79282908AE00AF019E
:1000F00088282908B0000A30B10035287808AF00F8
:100100002F08B0000A30B1004B2878082902AE0051
:100110008316851083128510831605118312051529
:100120002E0B972883168601F330831286002E0843
:10013000023C031DA02883168601493083128600E5
:100140002E08033C031DA928831686016130831203
:1001500086002E08043C031DB22883168601333026
:10016000831286002E08053C031DBB2883168601DA
:100170002530831286002E08063C031DC4288316F2
:1001800086010530831286002E08073C031DCD280A
:1001900083168601F130831286002E08083C031D69
:1001A000D628831686010130831286002E08093C6A
:1001B000031DDF2883168601213083128600AE08D6
:1001C000031DE7288316860181308312860083167B
:1001D00005118312051183168510831285142F0BC8
:1001E000F62883168601F330831286002F08023C1E
:1001F000031DFF28831686014930831286002F08CD
:10020000033C031D08298316860161308312860092
:100210002F08043C031D11298316860133308312F5
:1002200086002F08053C031D1A29831686012530F8
:10023000831286002F08063C031D2329831686019E
:100240000530831286002F08073C031D2C298316D6
:100250008601F130831286002F08083C031D3529E2
:10026000831686010130831286002F08093C031D86
:100270003E2983168601213083128600AF08031DB4
:100280004629831686018130831286000B118A115C
:10029000202884011F308305703083168F001F12C1
:1002A0009F121B0880399B0007309C001F129F1271
:1002B0001B0880399B0083121F10941283160611AD
:1002C00086140612003083129400831694000108ED
:1002D000C73908388100831290010030F80092007D
:1002E00000308316920007309C0005080630F700A6
:1002F000F70B782900001C0883120D1383169D014B
:100300008F010F0883128B16C0308B041330A900A5
:0403100086296300D7
:04400E00193FFC3F1B
:00000001FF
;PIC16F84
;PIC16F88
/programy/C/PIC_C/mereni/teplomer/main.sta
1,39 → 1,34
 
ROM used: 533 (52%)
533 (52%) including unused fragments
ROM used: 394 (10%)
394 (10%) including unused fragments
 
2 Average locations per line
7 Average locations per statement
1 Average locations per line
4 Average locations per statement
 
RAM used: 13 (19%) at main() level
28 (41%) worst case
RAM used: 17 (10%) at main() level
24 (14%) worst case
 
Lines Stmts % Files
----- ----- --- -----
81 44 56 D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\main.c
10 0 0 D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\main.h
113 0 0 C:\Program Files\PICC\devices\16F84.h
49 22 18 D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\1wire.c
29 13 9 D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\ds1820.c
97 65 65 D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\main.c
19 0 0 D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\main.h
279 0 0 C:\Program Files\PICC\devices\16F88.h
49 22 13 D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\1wire.c
29 13 7 D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\ds1820.c
----- -----
564 158 Total
946 200 Total
 
Page ROM % RAM Functions:
---- --- --- --- ----------
0 21 4 1 @delay_ms1
0 21 4 0 onewire_reset
0 35 7 2 onewire_write
0 39 7 2 onewire_read
0 61 11 9 ds1820_read
0 63 12 6 @DIVS1616
0 30 6 2 @ITOF
0 169 32 8 main
0 32 6 4 @SFTOI
0 21 4 3 @DIV88
0 37 7 2 @MUL88
0 216 55 4 RTCC_isr
0 22 6 3 @DIV88
0 38 10 2 @MUL88
0 65 16 2 main
 
Segment Used Free
--------- ---- ----
00000-00003 4 0
00004-003FF 529 491
00004-00034 49 0
00035-007FF 341 1654
00800-00FFF 0 2048
 
/programy/C/PIC_C/mereni/teplomer/main.sym
1,55 → 1,45
00C @SCRATCH
00D @SCRATCH
00D _RETURN_
00E @SCRATCH
00F @SCRATCH
010 @SCRATCH
012-013 main.duty
014 main.temp
015 main.znak1
016 main.znak2
017 main.znak
018 main.i
019 main.n
01A @MUL88.P1
01A @delay_ms1.P2
01A @DIV88.P3
01A ds1820_read.busy
01A-01D @SFTOI.P1
01B ds1820_read.temp1
01B @DIV88.P1
01B @MUL88.P2
01C ds1820_read.temp2
01C @DIV88.@SCRATCH
01D-01E ds1820_read.temp3
01F-022 ds1820_read.result
023 onewire_write.data
023-024 @DIVS1616.P1
023-024 @ITOF.P2
023 onewire_read.count
024 onewire_read.data
024 onewire_write.count
025-026 @DIVS1616.P1
027 @DIVS1616.@SCRATCH
028 @DIVS1616.@SCRATCH
015-016 CCP_1
015 CCP_1_LOW
016 CCP_1_HIGH
020 @INTERRUPT_AREA
021 @INTERRUPT_AREA
022 @INTERRUPT_AREA
023 @INTERRUPT_AREA
024 @INTERRUPT_AREA
025 @INTERRUPT_AREA
026 @INTERRUPT_AREA
027 @INTERRUPT_AREA
028 @INTERRUPT_AREA
029 temp
02A-02B main.duty
02C RTCC_isr.znak
02D RTCC_isr.i
02E RTCC_isr.znak1
02F RTCC_isr.znak2
030 @MUL88.P1
030 @DIV88.P2
031 @DIV88.P1
031 @MUL88.P2
032 @DIV88.@SCRATCH
077 @SCRATCH
078 @SCRATCH
078 _RETURN_
079 @SCRATCH
07A @SCRATCH
07B @SCRATCH
09C.6 C1OUT
09C.7 C2OUT
 
0157 @delay_ms1
0004 onewire_reset
0019 onewire_write
003C onewire_read
00C0 ds1820_read
0063 @DIVS1616
00A2 @ITOF
016C main
00FD @SFTOI
011D @DIV88
0132 @MUL88
016C @cinit
0071 RTCC_isr
0035 @DIV88
004B @MUL88
0149 main
0149 @cinit
 
Project Files:
D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\main.c
D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\main.h
C:\Program Files\PICC\devices\16F84.h
C:\Program Files\PICC\devices\16F88.h
D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\1wire.c
D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\ds1820.c
 
57,8 → 47,9
D:\KAKLIK\projekty\programy\C\PIC_C\mereni\teplomer\main.c (main)
 
Compiler Settings:
Processor: PIC16F84
Processor: PIC16F88
Pointer Size: 8
ADC Range: 0-255
Opt Level: 9
Short,Int,Long: 1,8,16
 
/programy/C/PIC_C/mereni/teplomer/main.tre
1,19 → 1,6
ÀÄmain
ÀÄmain 0/169 Ram=8
ÃÄ??0??
ÃÄds1820_read 0/61 Ram=9
³ ÃÄonewire_reset 0/21 Ram=0
³ ÃÄonewire_write 0/35 Ram=2
³ ÃÄonewire_write 0/35 Ram=2
³ ÃÄonewire_read 0/39 Ram=2
³ ÃÄonewire_reset 0/21 Ram=0
³ ÃÄonewire_write 0/35 Ram=2
³ ÃÄonewire_write 0/35 Ram=2
³ ÃÄonewire_read 0/39 Ram=2
³ ÃÄonewire_read 0/39 Ram=2
³ ÃÄ@DIVS1616 0/63 Ram=6
³ ÀÄ@ITOF 0/30 Ram=2
ÃÄ@SFTOI 0/32 Ram=4
ÃÄ@DIV88 0/21 Ram=3
ÃÄ@MUL88 0/37 Ram=2
ÀÄ@delay_ms1 0/21 Ram=1
ÃÄmain 0/65 Ram=2
³ ÀÄ??0??
ÀÄRTCC_isr 0/216 Ram=4
ÃÄ@DIV88 0/22 Ram=3
ÀÄ@MUL88 0/38 Ram=2