Dolda2000 GitWeb
/
kokare.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of git.dolda2000.com:/srv/git/r/kokare
[kokare.git]
/
kokare.c
diff --git
a/kokare.c
b/kokare.c
index
f3c65b6
..
f98fd96
100644
(file)
--- a/
kokare.c
+++ b/
kokare.c
@@
-1,5
+1,6
@@
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/interrupt.h>
+#include <avr/eeprom.h>
#include <inttypes.h>
#include <math.h>
#include <inttypes.h>
#include <math.h>
@@
-135,10
+136,10
@@
unsigned char bindisp(unsigned char num)
return(ret);
}
return(ret);
}
-void display(char num)
+void display(char num
, char d0, char d1
)
{
{
- dsp[0] = font[(num / 10) % 10];
- dsp[1] = font[num % 10];
+ dsp[0] = font[(num / 10) % 10]
| (d0?SEGP:0)
;
+ dsp[1] = font[num % 10]
| (d1?SEGP:0)
;
}
void disphex(unsigned char num)
}
void disphex(unsigned char num)
@@
-236,7
+237,7
@@
void convcycle(void)
* t = B / l
* Note, temperature is in Kelvin
*/
* t = B / l
* Note, temperature is in Kelvin
*/
-#define C 9.
792934
+#define C 9.
361168
#define B 4020.0
if(state == 0) {
if((mnow - last > 200000) && tavgok) {
#define B 4020.0
if(state == 0) {
if((mnow - last > 200000) && tavgok) {
@@
-266,13
+267,21
@@
int main(void)
int state, cur, run, rstate, delta;
unsigned long utime;
int state, cur, run, rstate, delta;
unsigned long utime;
- state = 0;
- cur = 100;
+ state = 1;
+ cur = eeprom_read_byte(0);
+ if(cur < 0)
+ cur = 0;
+ if(cur > 100)
+ cur = 100;
run = 0;
rstate = 0;
run = 0;
rstate = 0;
+ utime = getticks();
init();
sei();
init();
sei();
- display(0);
+ if(cur < 100)
+ display(cur, 0, 0);
+ else
+ dsp[0] = dsp[1] = SEGG;
while(1) {
mnow = getticks();
while(1) {
mnow = getticks();
@@
-289,9
+298,10
@@
int main(void)
if(ktok) {
ktok = 0;
if((tempk >= 273) && (tempk <= 372)) {
if(ktok) {
ktok = 0;
if((tempk >= 273) && (tempk <= 372)) {
- display(tempk - 273);
+ display(tempk - 273
, 0, run
);
} else {
} else {
- dsp[0] = dsp[1] = SEGG;
+ dsp[0] = SEGG;
+ dsp[1] = SEGG | (run?SEGP:0);
}
}
if(pval != 0)
}
}
if(pval != 0)
@@
-303,10
+313,6
@@
int main(void)
else
run = !run;
}
else
run = !run;
}
- if(run)
- dsp[1] |= SEGP;
- else
- dsp[1] &= ~SEGP;
} else if(state == 1) {
/* Temp setting */
if(pval != 0) {
} else if(state == 1) {
/* Temp setting */
if(pval != 0) {
@@
-316,27
+322,28
@@
int main(void)
cur = 0;
if(cur > 100)
cur = 100;
cur = 0;
if(cur > 100)
cur = 100;
- if(cur < 100)
- display(cur);
- else
- dsp[0] = dsp[1] = SEGG;
utime = mnow;
}
utime = mnow;
}
- if(mnow - utime >
1000000)
+ if(mnow - utime >
2000000) {
state = 0;
state = 0;
+ eeprom_write_byte(0, cur);
+ }
if(sstate == 2) {
run = !run;
sstate = 0;
}
if(sstate == 2) {
run = !run;
sstate = 0;
}
+ if(cur < 100) {
+ display(cur, 0, run);
+ } else {
+ dsp[0] = SEGG;
+ dsp[1] = SEGG | (run?SEGP:0);
+ }
} else if(state == 2) {
/* Display raw temp time reading */
if(ttimea < 20000) {
} else if(state == 2) {
/* Display raw temp time reading */
if(ttimea < 20000) {
- display((ttimea / 100) % 100);
- dsp[0] |= SEGP;
- if(ttimea >= 10000)
- dsp[1] |= SEGP;
+ display((ttimea / 100) % 100, 1, ttimea >= 10000);
} else {
} else {
- display(ttimea / 1000);
+ display(ttimea / 1000
, 0, 0
);
}
if(sstate == 2) {
state = 0;
}
if(sstate == 2) {
state = 0;
@@
-357,7
+364,7
@@
int main(void)
* ms. */
trdelay = 7;
} else {
* ms. */
trdelay = 7;
} else {
- trdelay = 7
9 - (delta * 9
);
+ trdelay = 7
5 - (delta * 5
);
}
} else {
tron = 0;
}
} else {
tron = 0;