-         

Ergebnis 1 bis 10 von 10

Thema: ATtiny2313 prob.

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2005
    Beiträge
    23

    ATtiny2313 prob.

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallso zusammen,


    Arbeite gerade mit dem ATtiny2313 V, timer macht aber nicht mit!
    Folgender Code funktioniert nicht auf dem ATtiny aber auf dem Mega32.Hab den Code im AVRstudio getestet da funktioniert er mit dem 2313 irgentwie , weiss echt nicht woran es liegen kann!

    Code:
    
      
    
    #include <avr/io.h> 
    #include <avr/interrupt.h> 
    #include <avr/signal.h>
    
    #include <avr/delay.h> 
    
    volatile int counter = 0;
    
    int main() { 
    
    
    DDRB = (1<<PB2); /*Ausgang*/ 
    DDRB = (1<<PB1); /*Ausgang*/ 
    DDRD |= (1<<PD6); /*Ausgang*/ 
    TCCR1B = (1<<CS10)|(1<<CS11);/*CPU-Takt / 64*/
    TIMSK = 0x84;  /* Timer0 Overflow Interrupt  enable*/
    TCNT1 = 3036;  
     sei();   /*  Global Enable Interrupt Flag  setzen  */
    
    
    while(1)
    {
    if (counter == 1) { 
    
    PORTD |= (1<<PD6); /*High*/
    PORTB = (1<<PB1); /*High*/
    _delay_ms(100);
    counter = 0;
    }
    else   
    { 
    
    
    PORTD &= ~(1<<PD6); /*low*/
    PORTD &= ~(1<<PB1); /*low*/
    
    }
    }
    
    
    }
    
    
    SIGNAL (SIG_OVERFLOW1) /*Interrupt-Routine*/
    {
    
    counter++; /*um eins inkrementieren*/
    
    
    
    }

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Da hats was, du mußt pb1 ODERN sonst zertrümmert er das PB2-Bit
    DDRB = (1<<PB2); /*Ausgang*/
    DDRB |= (1<<PB1); /*Ausgang*/

    Das muß du in der ISR auch machen
    TCNT1 = 3036;

    Probier' mal
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2005
    Beiträge
    23
    Danke erstmal für deine Hilfe, versteh aber noch nicht ganz was du meinst!

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Du hattest es so:
    DDRB = (1<<PB2); // der schreibt 00000100 rein. gut.
    DDRB = (1<<PB1); // aber der schreibt jetzt 00000010 drüber
    // drin steht jetzt 00000010
    // der erste 1-er ist jetzt wieder weg
    Neu:
    DDRB = (1<<PB2); // der schreibt 00000100 rein.
    DDRB |= (1<<PB1); // der schreibt seine 00000010 DAZU
    // drin steht jetzt 00000110, also beides

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2005
    Beiträge
    23
    Hab das jetzt mal geändert, funktioniert immer noch nicht!Kann vielleicht mal jemand seinen eigenen code posten?Muss ich vielleicht noch was an den Fusebits verstellen oder das dass signal nur an einem bestimmten pin beim 2313 erzeugt wird?

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Wo hast du die 84 her ?

    TIMSK = 0x84; /* Timer0 Overflow Interrupt enable*/

    sollte das nicht so sein ?
    TIMSK |= (1<<TOIE1);
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2005
    Beiträge
    23
    So hatte ich das am anfang, im ARVStudio wurde der aber nicht gesetzt dann hab ich das einfach mit 0x84 gemacht und so wurde er gesetzt!
    arbeitest du auch mit dem 2313, weil wenn dann könntest du ja mal den code bei dir testen!

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Nö, kein Tiny, nur meg32 u. "normal" 2313.
    0x84 ja zwei bits

    Wie auch immer, es muß für das enable bit eine definition geben,
    Man muß im Datasheet nachlesen, hilft nix
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Seh gerade, wenn, dann nur 0x80 f. TOIE1 (Oooh->nicht null) im TIMSK
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2005
    Beiträge
    23
    im blatt find ich einfach nix was mir helfen könnte,ich geh totl ein weil es eigentlich ein wichtiges projekt ist aber "Danke dir sehr für deine Hilfe und dein Bemühen!!!!"

Berechtigungen

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