- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: Sprunghafte Fehler in Timerwerten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Code:
    $regfile "m8def.dat"
    $crystal = 10000000
    $hwstack = 100
    $swstack = 100
    $framesize = 100
    $baud = 9600
    
    Dim Flag As Byte
    Dim Timer0_temp As Byte
    Dim Timer1_temp As Word
    Flag = 0
    
    Config Timer0 = Timer , Prescale = 1
    Config Timer1 = Timer , Prescale = 256
    Config Int0 = Rising
    '6 Takte für Timer
    
    Enable Interrupts
    
    Enable Int0                                                 'enable the interrupt
    
    On Int0 Send Nosave
    
    
    Stop Timer0
    Stop Timer1
    Timer0 = 0
    Timer1 = 0
    
    Start Timer0
    Start Timer1
    
    Do
       If Flag = 1 Then
          Print "Timer1= " ; Str(timer1_temp) ; " " ; "Timer0= " ; Str(timer0_temp)
          Flag = 0
       End If
    Loop
    
    Send:
       Timer0_temp = Timer0
       Timer1_temp = Timer1
       Timer0 = 0
       Timer1 = 0
       Flag = 1
    Return
    (ungetestet)


    Funktioniert es so besser?

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    ich bin verblüfft

    ja so funktioniert es besser

    nun die frage warum geht es denn besser

    der µC hatte doch ewig zeit zum senden oder UART in einer isr nicht so gut?

    So und noch ein Danke ich such die ganze zeit die fehler in der Hardware UART aus der isr raus und es geht

    Thx
    was gibt es noch zu sagen

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Ich vermute, Bascom sendet die Daten über einen Sendepuffer der irgendwann mal voll wird. Ab diesem Zeitpunkt wird dann in der ISR gewartet und der impulsgebende µC ist nicht mehr synchron. Das könnte man etwa so überprüfen:

    Print "Timer1= " ; Str(timer1) ; "Timer0= " ; Str(timer0) ; "dummytext"

    Mehr Text bedeutet Puffer ist schneller voll.

    Wie sieht denn die Ausgabe der verbesserten Variante aus?
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    Temp= 9956365 Timer1= 38892 Timer0= 13
    Temp= 9956365 Timer1= 38892 Timer0= 13
    Temp= 9956365 Timer1= 38892 Timer0= 13
    Temp= 9956365 Timer1= 38892 Timer0= 13
    Temp= 9956620 Timer1= 38893 Timer0= 12
    Temp= 9956363 Timer1= 38892 Timer0= 11
    Temp= 9956361 Timer1= 38892 Timer0= 9
    Temp= 9956360 Timer1= 38892 Timer0= 8


    Temp=timer1*256+timer0
    was gibt es noch zu sagen

Ähnliche Themen

  1. Wo ist der Fehler?
    Von Ezalo im Forum Robby RP6
    Antworten: 8
    Letzter Beitrag: 12.08.2010, 16:48
  2. RP6 Fehler
    Von jonasspieker im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 06.03.2010, 15:20
  3. ADC Fehler?
    Von PICVB im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 21.11.2007, 22:48
  4. wo ist der fehler??? please help!
    Von Robotik84 im Forum Asuro
    Antworten: 4
    Letzter Beitrag: 28.11.2006, 16:22
  5. ISP Fehler
    Von Thetis im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 04.10.2006, 16:26

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress