mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme bei einfachem Bascom Programm


Autor: Sascha Smolny (bismosa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich fange gerade erst an...meine ersten Versuche laufen derzeit in 
Bascom...auch wenn andere Programme besser sein sollen...ich muss 
erstmal einen einstieg finden. Da ich eh ein wenig Basic kann...

Das Programm, das ich bisher geschrieben habe, soll:
1. Beide PWM Ausgänge einen mit 20% und einen mit 80% aktivieren
2. Immer wenn ein Schalter geschlossen ist (Gruppe 1und2 und 3und4) 
einen Motor ansteuern.

Die Hardware ist schon verdrahtet und ohne Mikrocontroller vollständig 
lauffähig.

Ich nutze ein Testboard aus der Elektor, das dort vor ein paar Jahren 
mal veröffentlicht wurde.

Nun zu meinem Problem...hier ist erstmal der Code:
$regfile = "m16def.dat"                                     'Atmega16
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 8000000                                          '8Mhz Quarz

    Config Portc = Output                                   'display
    Config Porta = Input                                   'Schalter
    Config Portd.5 = Output                                 'PWM 1
    Config Portd.4 = Output                                 'PWM 2

'Pins des LCD-Modules setzen ggf. an eigene Anschlüsse anpassen
    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
    Config Lcd = 20 * 4a , Chipset = Ks077
 Initlcd
 Cls


'Namen und Variablen
'Schalter auf Entwicklungsboard
Dip1 Alias Pina.0
Dip2 Alias Pina.1
Dip3 Alias Pina.2
Dip4 Alias Pina.3
Dip5 Alias Pina.4
Dip6 Alias Pina.5
Dip7 Alias Pina.6
Dip8 Alias Pina.7

Led1 Alias Portb.0
Led2 Alias Portb.1
Led3 Alias Portb.2
Led4 Alias Portb.3
Led5 Alias Portb.4
Led6 Alias Portb.5
Led7 Alias Portb.6
Led8 Alias Portb.7




'PWM setzen
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1

Locate 1 , 1
Lcd "205 / 21"

Do                                                          'Hauptschleife
 Compare1a = 205                                            '100% = 256 -> 80% = 205
 Compare1b = 51                                             '20% = 51

'Motor 1
If Pina.1 = 1                                               'And Dip2 = 0
   Then
      Led1 = 1
      Led2 = 0
End If

If Dip1 = 0 And Dip2 = 1
   Then
      Led1 = 0
      Led2 = 1
End If

If Dip1 = 0 And Dip2 = 0
   Then
      Led1 = 0
      Led2 = 0
End If

If Dip1 = 1 And Dip2 = 1
   Then
      Led1 = 0
      Led2 = 0
End If


'Motor 2
If Dip3 = 1 And Dip4 = 0
   Then
      Led3 = 1
      Led4 = 0
End If

If Dip3 = 0 And Dip4 = 1
   Then
      Led3 = 0
      Led4 = 1
End If

If Dip3 = 0 And Dip4 = 0
   Then
      Led3 = 0
      Led4 = 0
End If

If Dip3 = 1 And Dip4 = 1
   Then
      Led3 = 0
      Led4 = 0
End If

Loop

End

Hier kommt beim Compilen die Fehlermeldung:
Assignment error [IP1:0 1:112]
in dieser Zeile:
If Dip1 = 1                                                  'And Dip2 = 0  
Bevor ich hier das And Dip2 = 0 auskommentiert hatte, gab es die 
Fehlermeldung
3 Parameters expected

Ich hatte zuerst nur die PWM aktiv. Soweit hatte das Programm gut 
funktioniert.

Über den Alias habe ich mir die pins umbenannt. Aber auch wenn ich die 
Zeile in
If Pina.0 = 1                                                  'And Dip2 = 0  
ändere, bleibt die Fehlermeldung die gleiche...

Ich verstehe beides nicht so ganz. Kann mir hier bitte jemand auf die 
Sprünge helfen? Mir reicht schon ein schubs in die Richtige Richtung :)

Gruß

Bismosa

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Then in die gleiche Zeile wie If.

Autor: Sascha Smolny (bismosa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MWS schrieb:
> Then in die gleiche Zeile wie If.

WOW! Danke! Genau da lag mein Fehler.
Da wäre ich ja nie drauf gekommen....und was ich schon alles ausprobiert 
und gegoogelt habe :)

Danke für die superschnelle Hilfe!! Damit ist der Beitrag schon gelöst!

Gruß

Bismosa

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir immer zuerst die Bascom Hilfe an, da sind zu jedem Befehl 
immer kleine Anwendungsbeispiele dabei. Hilfedatei gibt's bei MCS auch 
als Pdf.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.