int APIENTRY WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { Tobj co; Psrc_t src; hinstance = hInstance; hprevinstance = hPrevInstance; idlerunmode = 0; exprstr = NULL; fp = NULL; init (NULL); Ginit (); #ifndef FEATURE_MS FD_SET (Gxfd, &inputfds); #endif Eerrlevel = 1; Estackdepth = 2; Eshowbody = 1; Eshowcalls = 1; processstr (leftyoptions); __argv++, __argc--; processargs (__argc, __argv); if (setjmp (exitljbuf)) goto eop; Cinit (); IOinit (); Minit (GFXprune); Tinit (); Pinit (); Einit (); Sinit (); Dinit (); Iinit (); TXTinit (txtcoords); GFXinit (); if (exprstr) { src.flag = CHARSRC, src.s = exprstr, src.fp = NULL; src.tok = -1, src.lnum = 1; while ((co = Punit (&src))) Eunit (co); } if (fp) { src.flag = FILESRC, src.s = NULL, src.fp = fp; src.tok = -1, src.lnum = 1; while ((co = Punit (&src))) Eunit (co); } if (endflag) goto eop; TXTupdate (); Gneedredraw = FALSE; for (;;) { if (Gneedredraw) GFXredraw (), Gneedredraw = FALSE; if (Gbuttonsdown > 0) GFXmove (), Gprocessevents (FALSE, G_ONEEVENT); else { if (Mcouldgc) { if (!processinput (FALSE)) Mdogc (M_GCINCR); } else if (idlerunmode) { if (!processinput (FALSE)) GFXidle (); } else processinput (TRUE); } if (Erun) TXTupdate (), Erun = FALSE; } eop: #ifdef PARANOID GFXterm (); TXTterm (); Iterm (); Dterm (); Sterm (); Eterm (); Pterm (); Tterm (); Mterm (); IOterm (); Cterm (); Gterm (); term (); #endif printusage (); exit (0); }
int main (int argc, char **argv) { Tobj co; Psrc_t src; #ifdef MTRACE extern int Mt_certify; Mt_certify = 1; #endif #ifdef STATS stime = time (NULL); #endif idlerunmode = 0; exprstr = NULL; fp = NULL; init (argv[0]); Minit (GFXprune); Ginit (); FD_SET (Gxfd, &inputfds); Eerrlevel = 1; Estackdepth = 2; Eshowbody = 1; Eshowcalls = 1; processstr (leftyoptions); argv++, argc--; processargs (argc, argv); if (setjmp (exitljbuf)) goto eop; Cinit (); IOinit (); Tinit (); Pinit (); Einit (); Sinit (); Dinit (); Iinit (); TXTinit (txtcoords); GFXinit (); #ifdef FEATURE_GMAP gmapon = TRUE, G2Linit (); #endif if (exprstr) { src.flag = CHARSRC, src.s = exprstr, src.fp = NULL; src.tok = -1, src.lnum = 1; while ((co = Punit (&src))) Eunit (co); } if (fp) { src.flag = FILESRC, src.s = NULL, src.fp = fp; src.tok = -1, src.lnum = 1; while ((co = Punit (&src))) Eunit (co); } if (endflag) goto eop; TXTupdate (); Gneedredraw = FALSE; for (;;) { if (Gneedredraw) GFXredraw (), Gneedredraw = FALSE; if (Gbuttonsdown > 0) { GFXmove (), Gprocessevents (FALSE, G_ONEEVENT); processinput (FALSE); } else { if (Mcouldgc) { if (!processinput (FALSE)) Mdogc (M_GCINCR); } if (idlerunmode) { if (!processinput (FALSE)) GFXidle (); #ifdef FEATURE_GMAP } else if (GMAPneedupdate) { processinput (FALSE); #endif } else processinput (TRUE); } #ifdef FEATURE_GMAP if (gmapon) GMAPupdate (); #endif if (Erun) TXTupdate (), Erun = FALSE; } eop: #ifdef PARANOID #ifdef FEATURE_GMAP if (gmapon) G2Lterm (); #endif GFXterm (); TXTterm (); Iterm (); Dterm (); Sterm (); Eterm (); Pterm (); Tterm (); IOterm (); Cterm (); Gterm (); Mterm (); FD_CLR (Gxfd, &inputfds); term (); #endif printusage (); return 0; }
//********************************************************************* int main(void)//******************************************************* //********************************************************************* { //I2C Display Initialisieren i2cInit(); Dinit(DADR); cntrB(DADR,curoff); Dled=ledon; //Port B.0 als Ausgang DDRB|=(1<<PIN0); setB(1,PIN0); //Port D.4 als Eingang mit Pullup //Frequenzzaehleingang Timer 0 DDRD&=~(1<<PIN4); PORTD|=(1<<PIN4); //Port D.7 als Eingang mit Pullup DDRD&=~(1<<PIN7); PORTD|=(1<<PIN7); //Port D.6 als Eingang mit Pullup DDRD&=~(1<<PIN6); PORTD|=(1<<PIN6); //Timer 0 als externer Impulszaehler //mit Interrupt bei Overflow TCCR0=0b00000110; TIMSK|=(1<<TOIE0); //Timer 1 als Zeitbasis im CTC Mode //Laufzeit 1 Sekunde //12Mhz/256/46875=1 TCCR1A=0; TCCR1B=0b00011100; ICR1=46838;//mit Frequenzzaehler getrimmt - 46875 wäre theoretisch; //Interrupts freigeben sei(); //Fixe Texte am Display ausgeben DClear(DADR); OutStr_DP (DADR,PSTR("Fuellstand:000mm")); Dpos(DADR,64); OutStr_DP (DADR,PSTR(" Hz pF")); ////////////////////////////////////////////////////////////////////////////////////// LOOP:;//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// //Abfrage Taste an PortD.7 (Kalibriermodus Tiefststand) if (getD(PIN7)) { kaliblow(); } //Abfrage Taste an PortD.6 (Kalibriermodus Hoechststand) if (getD(PIN6)) { kalibhigh(); } //Kapazität messen messcap(); //Messzyklus mit LED anzeigen toggl=!toggl; setB(toggl,PIN0); Dpos(DADR,64); //Frequenz am Display anzeigen DLong(DADR,pulse,6,0); Dpos(DADR,73); //Kapazitaet am Display anzeigen DLong(DADR,Cfix,4,1); //Berechnung Elektrolythoehe float K=0; float D=0; float Y=0; U32 Yfix=0; U16 iHMAX; U16 iHMIN; U16 iCMAX; U16 iCMIN; //Grenzdaten aus EEprom lesen cli(); //Interrupts aus wegen EEPROM iHMIN=(U16)(readEE(HMIN+1)<<8)+(U16)readEE(HMIN); iHMAX=(U16)(readEE(HMAX+1)<<8)+(U16)readEE(HMAX); iCMIN=(U16)(readEE(CMIN+1)<<8)+(U16)readEE(CMIN); iCMAX=(U16)(readEE(CMAX+1)<<8)+(U16)readEE(CMAX); sei(); if (Cfix<iCMIN) {Cfix=iCMIN;} K=(float)iHMAX/((float)iCMAX-(float)iCMIN); D=-K*(float)iCMIN; Y=(float)Cfix*K+D; Yfix=(U32)Y; Dpos(DADR,11); //am Display anzeigen DLong(DADR,Yfix,3,0); /////////////////////////////////////////////////////////////////////////////////////// goto LOOP;///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// //*********************************************************************** }//**********************************************************************