Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem oko Timer1 u mikroC

[es] :: Elektronika :: Mikrokontroleri :: Problem oko Timer1 u mikroC

[ Pregleda: 1812 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nikolapirot
Student
Srbija Pirot

Član broj: 235367
Poruke: 239
*.dynamic.isp.telekom.rs.



+1 Profil

icon Problem oko Timer1 u mikroC18.08.2012. u 16:30 - pre 142 meseci
Pravim frekfrenciometar do 50Mhz sa tajmerom 1 kao brojacem i tajmerom 0 koji meri vreme. Problem je u tome sto kad prodje 1 sekunda i kada prikaze vrednost ona ispadne neka bezveze. Na primer za 1khz pokaze 2430Hz, za 10khz prikaze 24319hz, za 100hz prikaze 240Hz. Simulaciju vrsim u proteusu.
Code:

sbit LCD_RS at RA0_bit;
sbit LCD_EN at RA1_bit;
sbit LCD_D7 at RB4_bit;
sbit LCD_D6 at RB3_bit;
sbit LCD_D5 at RB2_bit;
sbit LCD_D4 at RB1_bit;
sbit LCD_RS_Direction at TRISA0_bit;
sbit LCD_EN_Direction at TRISA1_bit;
sbit LCD_D7_Direction at TRISB4_bit;
sbit LCD_D6_Direction at TRISB3_bit;
sbit LCD_D5_Direction at TRISB2_bit;
sbit LCD_D4_Direction at TRISB1_bit;

 long unsigned inc=0,frek=0,broj=0;

char TMR[20]="0";
  void interrupt(void)
{

   if(INTCON.T0IF)
   {

    inc++;
    INTCON.T0IF=0;
   }
   if(PIR1.TMR1IF)
   {
     broj++;
     PIR1.TMR1IF=0;
     
    }

}


void main() {
     INTCON=0b10110000     ;
     OPTION_REG=0b10000000;
     TMR1L=0;
     TMR1H=0;
    LCD_Init();
   LCD_Cmd(_LCD_Cursor_Off);
  Delay_Ms(100);
   PIR1.TMR1IF=0;
   PIE1.TMR1IE=1;
   T1CON=0b00000110;
     INTCON.PEIE=1;
     INTCON.GIE=1;
    T1CON.TMR1ON=1;
    INTCON.T0IF=0;
     for(;;)
     {
          if(inc==1953)
          {
          INTCON.GIE=0;
         T1CON.TMR1ON=0;
          frek=(TMR1H<<8)+TMR1L+(65535*broj);
          LongToStr(frek,TMR);
          LCD_Out(1,1,TMR);
          broj=0;
           TMR1L=0;
     TMR1H=0;
          T1CON.TMR1ON=1;
          INTCON.GIE=1;
          inc=0;
         }
     }
     




Gde gresim i sta da promenim da bi proradio program. Inace kontroler je 16f628a i koristim interni clock koji je 4Mhz. Hvala unapred
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: Problem oko Timer1 u mikroC18.08.2012. u 18:30 - pre 142 meseci
Interni oscilator ti nije dobar za takvo merenje. Za proveru mozes recimo posle:

if(inc==1953)
{


da toglujes neki pin cisto da vidis koliko ti traje merenje ali da budem iskren ni u kodu ne vidim odakle ovolika razlika.

gorankg
 
Odgovor na temu

nikolapirot
Student
Srbija Pirot

Član broj: 235367
Poruke: 239
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Problem oko Timer1 u mikroC19.08.2012. u 12:21 - pre 142 meseci
Vec sam proverio, tacno jedna sekunda kolko mi i treba. Pokusao sam i sa internim i sa eksternim isto je. A u data sheet-u pise da je preciznost internog takta +-1%.
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: Problem oko Timer1 u mikroC19.08.2012. u 17:02 - pre 142 meseci
Proveri ove izraze:

frek=(TMR1H<<8)+TMR1L+(65535*broj);
LongToStr(frek,TMR);

mozes i koristeci simulator samo umesto TMR1H i TMR1L stavi neke unsigned char konstante. Ja nemam ME kompajler.

Drga stvar koju mozes da uradis je da dovedes 1KHz signal i ispises nakon jedne sekunde TMR1H i TMR1L.
gorankg
 
Odgovor na temu

nikolapirot
Student
Srbija Pirot

Član broj: 235367
Poruke: 239
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Problem oko Timer1 u mikroC20.08.2012. u 02:25 - pre 142 meseci
Sa int na TMR1H nista ne dobijam. E sad sam isao step by step animaciju u proteusu sa sve osciloskopom, stavio sam frekfrenciju na 10Hz, kako bih lakse pratio signale i posmatrao sam kako se sada menja TMR1H. Step je isao na svaki puls ulaznog signala i gle cuda. Na svaki step koji dodje na ulaz, za rastuci signal timer1 broji 2 puta a za svaki opadajuci broji 1. Tako da za jedan inpuls on broji 3puta. Da li je ovo do proteusa i da li bi ovo radilo kada bih ga napravio ovako?
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: Problem oko Timer1 u mikroC20.08.2012. u 08:54 - pre 142 meseci
Ja sam nekoliko puta isto imao problema sa simulacijom u PROTEUS-u, iako mi je program izgledao sasvim u redu. OK, rekoh, problem u simulatoru, napraviću ja uredjaj i to će da radi. Medjutim, kako je radilo u PROTEUS-u, tako je radilo i na pravom hardveru. Ne kažem da je simulator idealna stvar, ali šanse da su se zeznuli oko TMR1 su jako jako male. Problem je, najverovatnije, u tvom programu.

Pozdrav.
Sinisha
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: Problem oko Timer1 u mikroC20.08.2012. u 09:47 - pre 142 meseci
RS i EN linije su ti na RA0 i RA1, ocigledno da LCD radi u PROTEUSU iako te pinove MCU-a nisi postavio kao digitalne CMCON = 0x07; Simulator moze da gresi ali mislim da mozes vrlo brzo da proveris matematiku koju sam ti prethodno predlozio.
gorankg
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Problem oko Timer1 u mikroC20.08.2012. u 13:09 - pre 142 meseci
Citat:
rsinisa:Ne kažem da je simulator idealna stvar, ali šanse da su se zeznuli oko TMR1 su jako jako male.


posebno sa 628A koji je implementiran jako dobro!!

@OP, da li si gledao warninge u ISIS-u kada si terao simulaciju? Obicno ti tamo da mnogo korisnih podataka. Mogao si i da zakacis ovde dsn fajl (ne vidim da si ga okacio) ili bar png ili pdf da vidimo kako si to spojio
 
Odgovor na temu

nikolapirot
Student
Srbija Pirot

Član broj: 235367
Poruke: 239
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Problem oko Timer1 u mikroC20.08.2012. u 17:58 - pre 142 meseci
Evo svega sto sam napravio, jos ulaz nisam formirao bas kao sto treba nego sam stavio direktno na RB6 puls. Program je konfigurisan za interni clock.
http://www.2shared.com/file/ZA0XltBY/Projekat.html
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Problem oko Timer1 u mikroC

[ Pregleda: 1812 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.