Untitled

 avatar
user_1610350
plain_text
a year ago
1.1 kB
2
Indexable
Never
uint32_t czas=0;				// Licznik czasu, zliczajacy sekundy od handlera
uint8_t sekunda=0;			// Licznik przerwan ( do 10)
uint8_t sekunda_OK=0;
int i=0;




void SysTick_Handler(void)	// Podprogram obslugi przerwania od SysTick'a
{ 
	sekunda+=1;				// Licz interwaly równe 100ms
	if(sekunda==10)
	{
		sekunda=0;
		sekunda_OK=1;		// Daj znac, ze minela sekunda
		
	}
}



void ADC0_IRQHandler()
{	
	temp = ADC0->R[0];	// Odczyt danej i skasowanie flagi COCO

	if(!wynik_ok)					// Sprawdź, czy wynik skonsumowany przez petlę główną
	{
		wynik = temp;		// Wyślij wynik do pętli głównej
		wynik_ok=1;
	}
	
	DAC_Load_Trig(temp);	// Załadowanie nowej danej i wyzwolenie przetwornika C/A
	
}



	uint32_t czas_trwania[20];

	while(1)
	{
		if(sekunda_OK)
		{
			if(wynik_ok)
			{
			wynik = wynik*adc_volt_coeff;
				
			if (wynik>=1){
						czas+=1;
						czas_trwania[i]=time;
						LCD1602_SetCursor(2,0);
						sprintf(display,"%02d",czas);
						LCD1602_Print(display);
						
						sekunda_OK=0;
						wynik_ok=0;

					}