Example #1
0
 bool SetYPageSize( const float ys) // ys [cm]
 {
   YPageSize=ys;
   (*static_cast<DLongGDL*>(dStruct->GetTag(dStruct->Desc()->TagIndex("Y_SIZE"))))[0] 
     = DLong(floor(0.5+
       ys * (*static_cast<DFloatGDL*>(dStruct->GetTag(dStruct->Desc()->TagIndex("Y_PX_CM"))))[0]
     ));
   (*static_cast<DLongGDL*>(dStruct->GetTag(dStruct->Desc()->TagIndex("Y_VSIZE"))))[0]
     = DLong(floor(0.5+
       ys * (*static_cast<DFloatGDL*>(dStruct->GetTag(dStruct->Desc()->TagIndex("Y_PX_CM"))))[0]
     ));
   return true;
 }
Example #2
0
 bool SetXPageSize( const float xs) // xs [cm]
 {
   XPageSize=xs;
   (*static_cast<DLongGDL*>(dStruct->GetTag(dStruct->Desc()->TagIndex("X_SIZE"))))[0] 
     = DLong(floor(0.5+
       xs * (*static_cast<DFloatGDL*>(dStruct->GetTag(dStruct->Desc()->TagIndex("X_PX_CM"))))[0]
     ));
  (*static_cast<DLongGDL*>(dStruct->GetTag(dStruct->Desc()->TagIndex("X_VSIZE"))))[0]
     = DLong(floor(0.5+
       xs * (*static_cast<DFloatGDL*>(dStruct->GetTag(dStruct->Desc()->TagIndex("X_PX_CM"))))[0]
     ));
   return true;
 }
Example #3
0
//Kalibriermodus Tiefststand
void kaliblow(void)
{
 _delay_ms(200);
 DClear(DADR);
 OutStr_DP (DADR,PSTR("SET CMIN:     pF"));
 while(getD(PIN7));
 _delay_ms(200);			//Nach loslassen der Taste 1.Messung
 //Kapaziteat Tiefstand
 messcap();
 messcap();
 messcap();
 Dpos(DADR,9);				//Kapazitaet am Display anzeigen
 DLong(DADR,Cfix,4,1);
 cli();
 writeEE(CMIN,(U8)Cfix);	//Gemessene Kapazitaet is EEprom
 writeEE(CMIN+1,(U8)(Cfix>>8));
 sei();
 while(!getD(PIN7));
 DClear(DADR);
 OutStr_DP (DADR,PSTR("Fuellstand:000mm"));
 Dpos(DADR,64);
 OutStr_DP (DADR,PSTR("      Hz      pF"));
}
Example #4
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;/////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////////
 
 
//***********************************************************************
}//**********************************************************************