Announcement

Collapse
No announcement yet.

Micro Prossesorer

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #46
    Leketøy kom i posten i dag

    Tilbake til skole labben nå
    Attached Files
    **********************
    Mvh
    Stig Olsen
    Lillehammer MFK


    Nan Xplorer FullCarbon X tail
    Pike Perfect X tail
    Pike Brio / Giant
    Alpina 4001
    DG 500/22 Elan under opppussing
    Birde of Time ( Noe redusert må restureres )

    Futaba 12Fg Fasst

    Comment


    • #47
      Nå har jeg fått programert dette spetaklet slik at det teller sekunder. Diodene blinker i takt med sekundene og markerer hvert minutt.

      Men hvordan få den til å telle hundredeler ?

      ***********************
      // Blinky.c

      #include <avr/signal.h>
      #include <avr/interrupt.h>
      #include <avr/delay.h>
      #include <avr/IO.h>

      unsigned char gSekunder;
      unsigned char gMinutter;
      unsigned char Sek;
      unsigned char Min;
      unsigned char Total;

      void wait(void);

      int main (void)
      {
      // Stabiliserer
      for(int i = 0; i < 10; i++)
      _delay_loop_2(30000);

      cli(); //Dis Global Interups

      cbi(TIMSK2,TOIE2);

      ASSR=(1<<AS2);

      TCNT2=0;

      // Prescal 32768 / 128 = 1 sek pr overflow

      TCCR2A |=(1<<CS22) | (1<<CS20);

      // Venter på TCN2UB og TCR2UB to be cleard
      while((ASSR & 0x01) | (ASSR & 0x04));
      TIFR2=0xFF;
      sbi(TIMSK2, TOIE2);

      sei();

      gSekunder=0;
      gMinutter=0;
      }
      // Teller Overflow
      SIGNAL(SIG_OVERFLOW2)
      {
      // set PORTD for output
      DDRD = 0xFF;

      if (Sek==1)
      {
      Sek=0;
      PORTD = 0x03;
      }
      else
      {
      Sek=1;
      PORTD = 0x0C;
      }


      gSekunder++;
      ****************

      Kan jeg bare lage en variabel som teller opp til 256 ( Prescale ) for så å regne det om til hudredeler.. Eller noen andre tips ?
      **********************
      Mvh
      Stig Olsen
      Lillehammer MFK


      Nan Xplorer FullCarbon X tail
      Pike Perfect X tail
      Pike Brio / Giant
      Alpina 4001
      DG 500/22 Elan under opppussing
      Birde of Time ( Noe redusert må restureres )

      Futaba 12Fg Fasst

      Comment


      • #48
        Siden du er i gang med å kose deg med timere og interrupt så er dette et greit spor å fortsette i.
        Du må endre initiell verdi i timeren og sette prescaleren slik at du får 100 ganger flere interrupts.
        Du kan ikke bare redusere verdien på prescaleren siden denne verdien må være et heltall og 128/100 blir ikke det
        Last edited by Quadrocopter; 07-04-09, 19:00.

        Comment


        • #49
          Hvis du skal bruke MC til klokke funksjoner er det en fordel å velge en klokkefrekvens på krystallet som sikrer at init verdi, prescaler går opp i 1, da slipper du mye ekstra koding.
          Var ikke helt bra forklart med håper på at du forstår hva jeg mener.
          Last edited by Quadrocopter; 07-04-09, 19:09.

          Comment


          • #50
            Fant noe fornuftig lesestoff her.
            AVR Freaks

            Er vel noe slikt jeg må få til...
            **********************
            Mvh
            Stig Olsen
            Lillehammer MFK


            Nan Xplorer FullCarbon X tail
            Pike Perfect X tail
            Pike Brio / Giant
            Alpina 4001
            DG 500/22 Elan under opppussing
            Birde of Time ( Noe redusert må restureres )

            Futaba 12Fg Fasst

            Comment


            • #51
              Hvis jeg ikke prescalèr og setter ctc compare verdien til 3277 og klokke ocilatoren er på 32768hz.

              Da får jeg overflow hvert 0,1000061 sek. Og ettersom jeg skal måle max 15 minutter blir max avik 0,055 sek.

              Det får klare seg det..

              Men er det noe bakdeler eller fordeler med å ikke prescale ?
              **********************
              Mvh
              Stig Olsen
              Lillehammer MFK


              Nan Xplorer FullCarbon X tail
              Pike Perfect X tail
              Pike Brio / Giant
              Alpina 4001
              DG 500/22 Elan under opppussing
              Birde of Time ( Noe redusert må restureres )

              Futaba 12Fg Fasst

              Comment


              • #52
                Originally posted by Seiler`n View Post
                Hvis jeg ikke prescalèr og setter ctc compare verdien til 3277 og klokke ocilatoren er på 32768hz.

                Da får jeg overflow hvert 0,1000061 sek. Og ettersom jeg skal måle max 15 minutter blir max avik 0,055 sek.

                Det får klare seg det..

                Men er det noe bakdeler eller fordeler med å ikke prescale ?
                Ikke i ditt tilfelle men hvis du f.eks får et interrupt hver 0,5 sek (timer overflow ved maksimum verdii timerregister) men egentlig ønsker et interrupt hver 2 sek så så setter du prescaleren til 4 - du slipper da å håndtrer 3 interrupter.

                Comment

                Working...
                X