Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo, > ich will die DCF Funktion nutzen und habe sie in den Timer2 reingelegt. > Nun möchte ich aber 1x in der Sekunde Daten auf eine SD-Karte schreiben. > > Diese Funktion ist im Timer0 hinterlegt. > > Sub Main() > > DCF_Initialisierung() > > SPI_Init_Byte = 80 '3,6 Mhz > > SPI_Enable(SPI_Init_Byte) > > I2C_Init(I2C_100kHz) > > Serial_Init(0,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD38400) > .. > Irq_SetVect(INT_TIM2COMP,INT_10ms) ' Interrupt Service Routine definieren > > 'Interrupt Service Routine definieren - Timer0 > Irq_SetVect(INT_TIM0COMP,Step_0_Timer_0) > Timer_T0Time(144,PS0_1024) 'Zeit festlegen, Timer0 starten 144,44 * 69,44us= 9,966 ms > .. > ' Main > > Do While True 'Endlosschleife > > If Test_Bit = 0 Then > Port_WriteBit(7,1) 'PortA.7 - LED > Test_Bit = 1 > Else > Port_WriteBit(7,0) 'PortA.7 - LED > Test_Bit = 0 > End If > > Temperatur_einlesen_Step_1() 'Multiplex - Kanal wechseln > Thread_Wait(0,10) '10*10ms > Temperatur_einlesen_Step_2() 'Kanal I2C einlesen > > RS232_Write() > > End While > End Sub() > > Sub INT_10ms() > Dim irqcnt As Integer > DCF_INT_10ms() > irqcnt=Irq_GetCount(INT_TIM2COMP) ' Interrupt Request Counter > Retrun > End Sub > > Sub Step_0_Timer_0() > Dim Temp_Int As Integer > 'Aufruf alle 10ms > > If Timer0_10ms_counter = 50 Then > SD_Karte_main() > End If > > Timer0_10ms_counter = Timer0_10ms_counter + 1 > > If Timer0_10ms_counter >100 Then '10ms * 100 = ca. 1 Sekunde > Timer0_10ms_counter = 0 > End If > > 'Interrupt Request Counter > Temp_Int = Irq_GetCount(INT_TIM0COMP) > > Return > End Sub > > Wenn jetzt auf die SD-Karte geschrieben wird bleibt in diesem Moment das Hochzählen der Sekunden stehen. > Eine Sekunde dauert dann ca. 2sek. > > Was kann ich Ändern, damit der Timer2 vorrang hat (DCF Funktion) > > Gruss Christian