-         
Ergebnis 1 bis 7 von 7

Thema: BASCOM Fehler ATmega168 ! Timer0 kann nicht PWM sein!

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360

    BASCOM Fehler ATmega168 ! Timer0 kann nicht PWM sein!

    Anzeige

    Als ich gerade mein Programm schrieb bekam ich einen Fehler.
    Auf Timer1 funktionierte alles mit PWM. Timer0 als PWM lässt sich nicht compilieren!

    Mein Chip Atmega168
    (laut datenbatt timer0 PWM möglich)


    an was liegt das?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    Das liegt sehr wahrscheinlich am Bascom, denn Timer0 wird oft von internen Funktionen benutzt, und da braucht man kein PWM, auch wenn man das zwar eingeben kann, macht der Timer0 kein PWM, wenn er das Hardwaremässig zwar könnte, Bascom will nicht !

    Da kann man nur das DB herausholen und die Register von Hand setzen, aber aufpassen, das man nicht eine Basom-Funktion benutzt, die den Timer0 auch verwendet, das wirft wieder alles durcheinander !

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    Sobald ich den Timer0 oder den Timer2 als PWM dekariere meckert mich der compiler an (ungütige config).
    Ich benötige den Timer1 leider für etwas anderes, da dies der einzigste 16 Bit Timer ist.
    Also register selber setzen

    Ich schreib mal noch ne mail an MCSelec.

    Mfg
    Tobi

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    Ich hab das ganze jetzt direkt in die Register gewurschtelt *g*

    Hat beim 1. Versuch einwandfrei funktioniert!

    Danke.

    Mfg

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    35
    Beiträge
    979
    wollte auch gerade den timer 0 als pwm proggen.... leider nix mit Bascom könntest du so nett sein und den ausschnitt hier posten wie man den timer 0 configurieren muss?


    gruss bluesmash

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    Code:
    $regfile = "m168def.dat"
    $crystal = 16000000
    $baud = 9600
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    Config Pind.6 = Output
    
    'Config Timer0 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
    Tccr0a = &B11000001
    Tccr0b = &B00000001
    Tcnt0 = &B00000000
    Timsk0 = &B00000000
    Tifr0 = &B00000000
    
    Dim I As Byte
    
    Mop:
     For I = 0 To 140
      Ocr0a = I
      Waitms 100
     Next I
    Goto Mop
    
    End
    jo hier hab ich mal ein Testprog.

    mfg
    tobi

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    11.10.2006
    Beiträge
    34
    Hallo!

    Ich möchte bei einen Atmega168 den Timer2 verwenden. Scheinbar habe ich ein ähnliches Problem. Der Ausgang ist immer auf 5V. Habe folgendes nacheinander Versucht:

    Code:
    Config Timer2 = Pwm , Pwm = On , Compare A Pwm = Clear Up , Prescale = 1
    
    und:
    
    Tccr2a = &B11000001
    Tccr2b = &B00000001
    Tcnt2 = &B00000000
    Timsk2 = &B00000000
    Tifr2 = &B00000000
    
    
    Ocr2a = Variable
    Leider bin ich bisher zu keiner Lösung gekommen.

    Vielen Dank und schönen Gruß

    Timo

Berechtigungen

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