-         

Ergebnis 1 bis 1 von 1

Thema: Probleme mit Bascom AVR 2.0.7.3

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.06.2008
    Beiträge
    158

    Probleme mit Bascom AVR 2.0.7.3

    Anzeige

    Hallo,

    ich hab vor kurzem auf die neue Version geupdatet und nun funktioniert mein Programm nicht mehr richtig .

    ' µC Deklarationen ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++
    $regfile = "m328pdef.dat"
    $crystal = 8000000
    $baud = 19200
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    $lib "mcsbyte.lbx"

    ' Ein-/Ausgänge ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++

    ' Timer/PWM/Config ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++
    Config Timer1 = Pwm , Compare A Pwm = Clear Down , Prescale = 256
    Config Timer2 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256
    Blau Alias Pwm2a
    Gruen Alias Pwm1a
    Rot Alias Pwm2b

    Config Rc5 = Pind.2
    Enable Interrupts
    Config Int0 = Low Level

    ' Variablen/Subs ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++
    Dim Rot2 As Byte , Gruen2 As Byte , Blau2 As Byte
    Dim Eeprom1 As Eram Word , Eeprom2 As Eram Byte , Eeprom3 As Eram Byte 'X ; funktion ; Betriebsstatus
    Dim Address As Byte , Command As Byte
    Dim Wechselzeit As Byte , Ledstatus As Byte , Funktion As Byte , A As Word
    Wechselzeit = 0
    Dim Y As Word , X As Word , Betrieb As Byte

    Declare Sub Fader
    Declare Sub Init
    Declare Sub Funktionen

    ' Hauptprogramm ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++
    Call Init

    Do 'RC5 + Funktionsfestlegung
    Getrc5(address , Command)
    If Address = 9 Then
    Command = Command And &B01111111

    If Command = 0 Then
    Incr Funktion
    If Funktion > 2 Then Funktion = 0
    Eeprom2 = Funktion
    Rot = 0
    Gruen = 0
    Blau = 0
    Waitms 100 'Umschaltzeit für Funktionen (100ms)

    If Funktion = 0 Then
    For A = 0 To 2
    Rot2 = Lookup(x , Farben)
    Rot = Rot2
    Incr X
    Gruen2 = Lookup(x , Farben)
    Gruen = Gruen2
    Incr X
    Blau2 = Lookup(x , Farben)
    Blau = Blau2
    Incr X
    X = X - 3
    Waitms 50
    Rot = 0
    Blau = 0
    Gruen = 0
    Waitms 50
    Next
    A = 0
    End If
    Call Init
    End If

    If Command = 1 And Funktion = 0 Then 'Manuell
    X = X + 6
    If X > 301 Then X = 0
    Eeprom1 = X
    End If
    If Command = 2 And Funktion = 0 Then
    X = X - 9
    If X > 10000 Then X = 300
    Eeprom1 = X
    End If


    If Rot < 250 And Gruen < 250 And Blau < 250 And Command = 1 And Funktion = 2 Then 'Weiß
    Rot = Rot + 25
    Gruen = Gruen + 25
    Blau = Blau + 25
    End If
    If Rot > 25 And Gruen > 25 And Blau > 25 And Command = 2 And Funktion = 2 Then
    Rot = Rot - 25
    Gruen = Gruen - 25
    Blau = Blau - 25
    End If

    If Command = 5 Then 'Aus/ein über Fernbedienung
    Eeprom3 = 0
    Do
    If Rot > 0 Then Decr Rot
    If Gruen > 0 Then Decr Gruen
    If Blau > 0 Then Decr Blau
    Waitms 5 'Dimmschnelligkeit
    Loop Until Rot = 0 And Gruen = 0 And Blau = 0
    Do
    Enable Int0
    Power Powerdown
    Disable Int0
    Getrc5(address , Command)
    If Address = 9 Then Command = Command And &B01111111
    Loop Until Command = 5
    Eeprom3 = 1
    Call Init
    End If
    End If
    Call Funktionen

    Loop
    End

    ' Funktionen++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++
    Sub Funktionen
    If Funktion = 0 Then 'Manuelle Farbe
    Rot2 = Lookup(x , Farben)
    Rot = Rot2
    Incr X
    Gruen2 = Lookup(x , Farben)
    Gruen = Gruen2
    Incr X
    Blau2 = Lookup(x , Farben)
    Blau = Blau2
    Incr X
    X = X - 3
    End If

    If Funktion = 1 Then 'Fader
    For A = 0 To 3
    Call Fader
    Next
    End If
    End Sub


    Sub Fader: 'Fading
    If Rot < 255 And Gruen < 2 And Blau > 254 Then
    Ledstatus = 3
    Rot = Rot + 1
    End If
    If Gruen < 255 And Rot > 254 And Blau < 2 Then
    Ledstatus = 1
    Gruen = Gruen + 1
    End If
    If Blau < 255 And Rot < 2 And Gruen > 254 Then
    Ledstatus = 2
    Blau = Blau + 1
    End If
    If Ledstatus = 1 And Gruen > 254 Then
    Rot = Rot - 1
    End If
    If Ledstatus = 2 And Rot > 254 Then
    Gruen = Gruen - 1
    End If
    If Ledstatus = 3 And Rot > 254 Then
    Blau = Blau - 1
    End If
    If Ledstatus = 1 And Blau > 254 Then
    Rot = Rot - 1
    End If
    If Ledstatus = 2 And Blau > 254 Then
    Gruen = Gruen - 1
    End If
    If Ledstatus = 3 And Gruen > 254 Then
    Blau = Blau - 1
    End If
    Waitms Wechselzeit
    End Sub


    Sub Init 'Initialisierung
    X = Eeprom1
    Funktion = Eeprom2
    Betrieb = Eeprom3

    If Betrieb = 0 Then
    Do
    Enable Int0
    Power Powerdown
    Disable Int0
    Getrc5(address , Command)
    If Address = 9 Then Command = Command And &B01111111
    Loop Until Command = 5
    Eeprom3 = 1
    End If

    If Funktion = 0 Then
    Rot2 = Lookup(x , Farben)
    Rot = Rot2
    Incr X
    Gruen2 = Lookup(x , Farben)
    Gruen = Gruen2
    Incr X
    Blau2 = Lookup(x , Farben)
    Blau = Blau2
    Incr X
    X = X - 3
    End If

    If Funktion = 1 Then 'Fader
    Ledstatus = 1
    Rot = 255
    Gruen = 0
    Blau = 0
    End If

    If Funktion = 2 Then 'weiß
    Rot = 255
    Gruen = 255
    Blau = 255
    End If
    End Sub

    Farben: 'RGB
    Data 255 , 0 , 0
    Data 255 , 15 , 0
    Data ..........


    Enthält mein Programm veraltete Befehle oder sonstiges?
    Wenn ich es mit Bascom AVR 1.11.9.8 Übertrage funktioniert es, wenn ichs mit der neuen Version übertrage läuft irgendwie alles viel schneller ab als vorher...als hätte ich den Takt erhöht. Fusebit´s sind dennoch richtig gesetzt.
    Merkwürdig ist auch das ich alle Funktionen nach dem Übertragen einmal durchgehen kann und wenn die Funktion 2 (weiß) startet bleibt das Programm stehen. Keine Reaktion auf die Fernbedienung.

    Wurde vllt der Getrc5 Befehl verbessert?


    >>Problem teils behoben<<
    Da google ich den ganzen Tag, finde nichts und nun nach dem ich diesen Beitrag erstellt hab finde ich eine Teillösung -.-

    Seit dem neuen Bascom: CONFIG RC5 = pin [,TIMER=2] [,WAIT=value]

    Nun reagiert meine Schaltung auf die Fernbedienung wieder...nur irgendwie etwas komisch, die Funktionen werden viel zu schnell durchgeschalten und alle Wait-Befehle laufen schneller ab?!
    Seit der neuen Version habe ich auch Probleme beim Übertragen von Programmen mit meinem "mySmartUSB light". (Siehe Bild)
    Firmware wurde geupdatet, genauso wie Treiber. In Bascom ist STK500 native driver ausgewählt.
    Das Übertragen funktioniert nur noch wenn erst der Chip gelöscht und dann "write to buffer" gewählt wird.
    Klicke auf die Grafik für eine größere Ansicht

Name:	fehler.jpg
Hits:	6
Größe:	105,2 KB
ID:	23097

    Gruß
    D35troy3r
    Geändert von D35troy3r (25.08.2012 um 16:21 Uhr)

Ähnliche Themen

  1. Bascom Probleme
    Von Wergenter im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 19
    Letzter Beitrag: 16.07.2012, 22:11
  2. Probleme mit SAA1064 und Bascom
    Von harry2212 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 12
    Letzter Beitrag: 04.04.2008, 17:51
  3. Probleme mit Bascom
    Von Xam im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 21.10.2005, 14:18
  4. bascom 1.11.7.7 probleme
    Von sebastian.heyn im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 05.08.2005, 10:18
  5. probleme mit avr und bascom... wie geht das??
    Von raptor_79 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 12.05.2005, 17:10

Berechtigungen

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