Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
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;
}
Ejemplo n.º 3
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;/////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////////
 
 
//***********************************************************************
}//**********************************************************************