tokia ir buvo pirma mintis, taip reiks ir padaryt, galutinis matavimo rezultatas turi gautis vandens lygis:) schema mazdaug tokia talpuminis lygio jutiklis->generatorius->daznio matavimas->lygio isskaiciavimas "Levas" <bla@sss.com> wrote in message news:gmmng2$q1p$1@trimpas.omnitel.net... > Va, basice parasytas daznomatis. Aiskiai matosi skaiciavimo pricipas: du > counteriai- vienas sukasi 1s, kitas nuo isorinio signalo. O toliau > paprasta matematika. > > ' ATTiny 2313 ' > ' Frequency Counter ' > ' > $regfile = "ATtiny2313.dat" > $crystal = 20000000 '20MHz clock > Config Pind.4 = Output 'LED Pin > > 'Config LCD > Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.1 , Db6 = Portb.0 , Db7 > = Portd.6 , E = Portb.3 , Rs = Portb.4 > Config Lcd = 16 * 2 > Config Lcdbus = 4 > Config Lcdmode = Port > > 'Config Timers > Config Timer0 = Timer , Prescale = 1024 'Loop Timer > Config Timer1 = Counter , Edge = Rising 'Frequency > Counter > > 'Config Variables > Dim Temp As Long > Dim Ovf0 As Long > Dim Ovf1 As Long > Dim Freq As Long > Dim Freq1 As String * 7 > Dim Freq2 As String * 3 > Dim Freq3 As String * 4 > Dim Position As Byte > > 'Config Interrupts > Enable Interrupts > Enable Timer0 'Timer > interrupt > On Timer0 Incr_ovf0 'Overflow > Routine > Enable Timer1 'Counter > interrrupt > On Timer1 Incr_ovfl 'Overflow > routine > > > 'Main > Cls > Upperline 'Clear LCD > Display > Lcd " nuxieshop.com" > Lowerline > Lcd " Fun Count" > Cursor Off > Wait 2 > > 'Loop > Do > Portd.4 = 0 'LED On > Timer0 = 0 'Reset counts > Counter1 = 0 > Ovf0 = 0 'Reset > overflows > Ovf1 = 0 > > While Ovf0 <= 75 'One second > loop @ 20 MHz > nop > Wend > Waitus 3900 > Portd.4 = 1 'LED Off > Disable Timer0 'Stop Timers > Disable Timer1 > > Temp = Ovf1 * 65536 'Calc frequency > Freq = Temp + Counter1 > Cls 'Clear display > Locate 1 , 1 > Freq1 = Str(freq) > > Select Case Freq 'Choose > Frequency Range > Case Is >= 1000000 : Goto Mhz > Case Is >= 100000 : Goto Khzxxx > Case Is >= 10000 : Goto Khzxx > Case Is > 1000 : Goto Khzx > End Select > > '1-999 Hz > Position = 7 - Len(freq1) > Locate 1 , Position > Lcd Freq ; " Hz" > Goto Outputdisplay > > Mhz: > Freq2 = Left(freq1 , 1) > Freq3 = Mid(freq1 , 2 , 4) > Lcd Freq2 ; "." ; Freq3 ; " MHz" > Goto Outputdisplay > Khzxxx: > Freq2 = Left(freq1 , 3) > Freq3 = Mid(freq1 , 4 , 2) > Lcd Freq2 ; "." ; Freq3 ; " KHz" > Goto Outputdisplay > Khzxx: > Freq2 = Left(freq1 , 2 ) > Freq3 = Mid(freq1 , 3 , 3) > Lcd Freq2 ; "." ; Freq3 ; " KHz" > Goto Outputdisplay > Khzx: > Freq2 = Left(freq1 , 1 ) > Freq3 = Mid(freq1 , 2 , 4) > Lcd " " ; Freq2 ; "." ; Freq3 ; " KHz" > Goto Outputdisplay > > Outputdisplay: > Locate 2 , 1 'Setup LCD > cursor > > > Cursor Off > 'Restart timers > Enable Timer0 > Enable Timer1 > Loop > > 'Interrupt routines > '***************************************** > Incr_ovfl: > Incr Ovf1 > Return > > '***************************************** > Incr_ovf0: > Incr Ovf0 > Return > > End > > -- > Bye, Levas > -- > http://www.vabolis.lt - elektronika ir siaip > "KaroliS" <1@1.com> wrote in message > news:gmmmmm$p9n$1@trimpas.omnitel.net... >> mazdaug ribose 1khz-100khz darau iki 1mhz nes turiu kvacini generatoriu >> su >> kurio galiu pasitikrint kas gaunasi >> "Levas" <bla@sss.com> wrote in message >> news:gmmmhf$p48$1@trimpas.omnitel.net... >>>o koki dazni tau reikia skaiciuoti? >>> >>> -- >>> Bye, Levas >>> -- >>> http://www.vabolis.lt - elektronika ir siaip >>> "KaroliS" <1@1.com> wrote in message >>> news:gmm7ua$agu$1@trimpas.omnitel.net... >>>> jauciu kad sitas algoritmas FAIL, reiks ant popierio pasipaisyt >>>> "KaroliS" <1@1.com> wrote in message >>>> news:gml0fv$lsh$1@trimpas.omnitel.net... >>>>> nu va padariau daznio matavima kiek kitaip nei pradzioj planavau nzn >>>>> ar >>>>> geras sprendimas bet algoritmas gavosi toks: >>>>> counter0start >>>>> __delay_cycles //~1sec >>>>> counter0stop >>>>> daznis=(counter0_overflow*256)+counter0 >>>>> >>>>> pazaidus su delay_cycles atrodo kad gavosi pakankamai tikslus >>>>> matavimas, >>>>> reiktu pabandyt su geru generatorium ir daznomaciu pereit per visa >>>>> diapazona ir pazet kokios paklaidos gaunasi >>>>> >>>>> >>>>> >>>>> "Levas" <bla@sss.com> wrote in message >>>>> news:gmkq5u$gfm$1@trimpas.omnitel.net... >>>>>> >>>>>> "KaroliS" <1@1.com> wrote in message >>>>>> news:gmkpe5$fkp$1@trimpas.omnitel.net... >>>>>>> radau klaida, >>>>>>> neteisingai nurodytas interrupt vector adresas >>>>>>> >>>>>> >>>>>> Pats kaltas, kad rankutemis ivedineji tuos adresus. Tam skirti >>>>>> standartiniai include. >>>>>> >>>>> >>>>> >>>> >>>> >> >>