-         

Ergebnis 1 bis 10 von 10

Thema: stk200 und timer1 16bit

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.07.2005
    Beiträge
    5

    stk200 und timer1 16bit

    Anzeige

    hallo alle



    bin neu hier im forum auch (bei avr)
    ich habe eine problem und bitte um hilfe
    ich möchte den (16bit TIMER1) gern actvieren weiss leider nicht wie das geht.
    ich habe es versucht mit dem example code der bei codevision dabei ist geht aber nicht könnet es vielleicht an meinem stk200 liegen (mein hardware sind stk200 und atmega32) muss ich vielleicht was machen um es zuaktvieren und wenn nicht kann jemanden mir etwas über timer1(16bit-timer)geben

    hier ist mein code

    Code:
    // I/O register definitions for AT90S8515
    #include <mega32.h>
    
    // quartz crystal frquency [Hz]
    #define xtal 3686400
    // moving LED frequency [Hz]
    #define fmove 2
    
    // the LED on PORTC output 0 will be on
    unsigned char led_status=0xfe;
    
    // TIMER1 overflow interrupt service routine
    // occurs every 0.5 seconds
    
    interrupt [TIM1_OVF] void timer1_overflow(void)
    {
    // preset again TIMER1
    TCNT1=0x10000-(xtal/1024/fmove);
    // move the LED
    led_status<<=1;
    led_status|=1;
    if (led_status==0xff) led_status=0xfe;
    // turn on the LED
    PORTB=led_status;
    }
    
    void main(void)
    {
    // set the I/O ports
    // all PORTB pins are outputs
    DDRB=0xff;
    // turn on the first LED
    PORTB=led_status;
    
    // init TIMER1
    // TIMER1 is disconnected from pin OC1
    // no PWM
    TCCR1A=0;
    // TIMER1 clock is xtal/1024
    TCCR1B=5;
    // preset TIMER1
    TCNT1=0x10000-(xtal/1024/fmove);
    // clear TIMER1 interrupts flags
    TIFR=0;
    // enable TIMER1 overflow interrupt
    TIMSK=0x80;
    // all other interrupt sources are disabled
    GIMSK=0;
    
    // global enable interrupts
    #asm
        sei
    #endasm
    
    // the rest is done by TIMER1 overflow interrupts
    while (1);
    }


    danke im vorraus

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Hi auch. Ich hatte hier mal was dazu gepostet
    Link
    Allerdings für Mega8, aber die SFRs sollten die gleichen sein.
    Ausserdem verwende ich OutputCompare, das gibt genauere Zeitintervalle als immer TCNT1 neu zu setzen.

    Vielleicht geht's ja damit.

    Bist du sicher, daß dein Programm anläuft und im Interrupt landet?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.07.2005
    Beiträge
    5
    SprinterSB
    ich danke dir für dein antwort aber es hat mir nicht geholfen

    wass ich wissen will ist ob meine stk200 und timer1 auf atmega32 läuft oder nicht..weil der selbe code funtzt auf at90s8615 und bei atmega32 nicht

    und eine kleine example (beispiel) mit teimer1 16bit timer der functioniert oder eine erklörung pdf oder so hier im forum habe ich nicht gefunden und bei goole auch nicht es kommt mir vor als keiner mit timer1 klar kommt ....

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Ich versteh nur nicht, was ein Programmier-Adapter mit Timer1 zu tun hat... der Timer wird doch durch deine Software gesteuert.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.07.2005
    Beiträge
    5
    ja da ist ja was mich verrückt macht
    ich möcht nur wissen ob mein stk200 damit zu tuhn hat oder nicht weil der prog muss eigenlich funcktionieren vielleicht muss ich stk500 holen weil die 200er nicht funcktioniert aber die ist nicht kapput weil alles funzt aber nur nicht mit dem timer1 vielleicht muss ich was eingeben um es zu aktvieren (ein code oder so) das wegen will ich nur so eine kleine code (blink led oder so) mit timer1 delay (nicht delay_ms) damit kann ich wissen ob es ein hardwarefehler ist oder mein code ist falsch

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Was mir nur auffällt ist Code wie

    TCCR1B=5;

    Das mag für ein Controller korrekt sein, für einen anderen nicht. Verwende die Bitdefininitionen aus der avr/io.h
    Die Bits sind idR so benannt wie in den Manuals.
    Verschiedene AVR-Hardware ist teiweise verschieden zu bedienen, zB Timer1 bei 90S2313 gegenüber ATmega8.
    Und avr/io.h sieht für verschiedene Targets verschieden aus. Zwischen 90S8515 und Mega32 ist's vielleicht genau das Problem.

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Zitat Zitat von SprinterSB
    Verwende die Bitdefininitionen aus der avr/io.h
    Die Bits sind idR so benannt wie in den Manuals.
    Allerdings stimmt avr/io.h nur für den avr-gcc, gokussj4 programmiert aber mit Codevision.

    Ansonsten hast du aber natürlich absolut recht Könnte gut sein das da der Fehler liegt. AT90S8515 und ATMega32 sind schon recht verschieden. Beim Übergang zu der Mega-Reihe hat Atmel einiges an Funktionen hinzugefügt.

    Davon das ein Programm auf beiden Controller mit absolut dem gleichen Code läuft ist eher unwahrscheinlich ( insbesondere bei UART zum Beispiel ).

    MfG Kjion

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    15.07.2005
    Beiträge
    5
    danke
    ist schon gut jetzt geht wieder mein code hatte ein fehler =D>

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Dann schreib doch mal dazu was der Fehler war bzw. poste das funktionsfähige Programm.
    So haben dann auch andere Leute was davon wenn sie auch mal vor so einem Problem stehen.

    MfG Kjion

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    15.07.2005
    Beiträge
    5
    sorry war lange nicht online
    also ichabe


    TIMSK=0x80;
    auf TIMSK=0x04; umgestellt und es ging

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •