-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Erste Programme/Schritte in Bascom

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    30
    Beiträge
    378

    Erste Programme/Schritte in Bascom

    Anzeige

    Hi@all
    Ich hab mir nun, nachdem ich meinen ersten Bot noch mit CC gebaut habe, einen AVR Mega32 (RN-Control) gekauft. Ich will nun Bascom lernen, und bin ehrlich gesagt gerade etwas überwältigt :0. Nunja, also bei der CC Entwicklungssoftware schien mir alles etwas logischer und einfacher. Ist das in der Tat so, oder bilde ich mir das bloss ein? Ich hab jetzt gerade mal das Prggi von Frank für Motorprüfung und Batterieprüfung angeschaut, es Funktioniert zwar, aber ich hab keine ahnung wies funktioiert. -.-
    Also beim CC hat jedes Proggi mit "define x port[y]" angefangen. Wie ist das jetzt bei Bascom? Der Befehl define gibts irgendwie nicht mehr, durch was wurde er ersetzt? Naja, ich hätte natürlich noch viele Fragen, aber ich denke mal, ich werde es jetzt mal gleich versuchen wie ich das auch beim CC gemacht habe, mit der programmierung eines Lauflichts. Könnt ihr mir erklären, wie das geht, damit ich die befehle auch nachvollziehen kann? Wäre echt super

    vielen Dank und gruss
    Serge

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    30
    Beiträge
    378
    Hi nochma^^
    Ich hab jetzt einen anderen Thread gefunden, in dem das thema schon behandelt wurde. Sorry oO

    gruss Serge

    //Edit
    Ok, ich hab jetzt mal ein programm mit tastern und Lauflichtern geschrieben, nach der anleintung von RN-Control Test von Frank. nun, eigentlich hab ich glaub alles richtig gesagt, nur beim Compillieren, motzt er:
    Error:124 Line:0 ; Loop expected, in File:
    -.-

    nun, er braucht also noch ein Loop aber wo?

    hier noch mein code:
    Code:
    Declare Sub Lauflicht1()
    Declare Sub Lauflicht2()
    Declare Sub Lauflicht3()
    Declare Sub Lauflicht4()
    Declare Function Tastenabfrage() As Byte
    Dim Taste As Byte
    
    $regfile = "m32def.dat"
    
    $crystal = 16000000
    $baud = 9600
    
     Config Adc = Single , Prescaler = Auto
    
     Config Pina.7 = Input                                      'Für Tastenabfrage
     Porta.7 = 1
    
     Taste = Tastenabfrage()
     If Taste <> 0 Then
    
          Select Case Taste
             Case 1
                   Call Lauflicht1
    
             Case 2
                   Call Lauflicht2
    
             Case 3
                   Call Lauflicht3
    
             Case 3
                   Call Lauflicht4
    
    
    
          End Select
    
    
     End If
    
    
    
     End
    
     Function Tastenabfrage() As Byte
     Local Ws As Word
    
     Tastenabfrage = 0
     Start Adc
     Ws = Getadc(7)
     If Ws < 1010 Then
          Select Case Ws
             Case 410 To 450
                Tastenabfrage = 1
    
             Case 340 To 380
                Tastenabfrage = 2
    
             Case 265 To 305
                Tastenabfrage = 3
    
             Case 180 To 220
                Tastenabfrage = 4
    
    
          End Select
    
       End If
    
     End Function
    
    Sub Lauflicht1()
    
        Config Portc = Output
       Do
          Porta.0 = 1
          Wait 1
          Porta.0 = 0
          Wait 1
          Porta.0 = 1
          Wait 1
          Porta.0 = 0
          Wait 1
    
       End Sub
    
    
    Sub Lauflicht2()
    
       Config Portc = Output
           Do
          Portc.0 = 1
          Wait 1
          Portc.1 = 1
          Wait 1
          Portc.2 = 1
          Wait 1
          Portc.3 = 1
           Portc.0 = 1
          Wait 1
          Portc.1 = 1
          Wait 1
          Portc.2 = 1
          Wait 1
          Portc.3 = 1
    
    End Sub
    
    Sub Lauflicht3()
    
       Config Portc = Output
          Portc.0 = 1
          Wait 1
          Portc.0 = 0
          Wait 1
          Portc.1 = 1
          Wait 1
          Portc.1 = 0
          Wait 1
          Portc.2 = 1
          Wait 1
          Portc.2 = 0
          Wait 1
          Portc.3 = 1
          Wait 1
          Portc.3 = 0
    
       End Sub
    
    Sub Lauflicht4()
    
       Config Portc = Output
          Portc.0 = 1
          Wait 1
          Portc.0 = 0
          Portc.1 = 1
          Wait 1
          Portc.1 = 0
          Portc.2 = 1
          Wait 1
          Portc.2 = 0
          Portc.3 = 1
          Wait 1
          Portc.3 = 0
          Portc.4 = 1
          Wait 1
          Portc.4 = 0
    
    End Sub
    noch ne kurze frage: wird das Programm bei einem Compilierfehler nicht übertragen?

    mfg Serge

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2004
    Ort
    durmersheim international
    Alter
    57
    Beiträge
    159
    hi,
    du hast in deiner sub 'lauflicht1' und 'lauflicht2' jeweils ein "do" ohne dazugehöriges "loop" (müsste dann vor 'end sub' stehen).
    grüssens, harry
    der kopf ist rund damit das denken seine richtung ändern kann...

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    30
    Beiträge
    378
    Hi Harry

    Danke für den Hinweis, es funktioniert nun. Nun ist das eine Problem gelöst, folgt das nächste... -.-
    Und zwar hab ich probleme bei der übertragung ds Programms. Ich habe die optionen so eingestellt wie hier: http://www.roboternetz.de/wiki/pmwik...Main.Avrbascom
    Als Chip hab ich "M32" ausgewählt. Nun Compilliere ich also. Nun drücke ich oben in der Leiste auf dieses Grüne ding, um in den Programmiermodus zu gelangen.
    Doch nun kommt folgende Fehlermeldung:


    ich drück ok, dann kommt folgendes

    kann ich mir nicht erklären, da ich ja dei "Chip" "m32" eingestellt habe

    ich drück nochmal ok, dann komm ich hierhin:

    Übertragen lässt sich das Programm aber nicht

    Was auch komisch ist, dass jedes mal, wenn ich das Prog neu starte, bei der Option "Programmer" automatisch auf "Serial" umgestellt ist, obwohl ich "Parallel" (Druckerport) brauche.

    Also ISP hab ich richtig angeschlossen, alle lämpchen sind aus, und Netzgerät ist auch drann.
    Wäre für jeden Hilfeversuch dankbar

    gruss Serge

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.02.2005
    Ort
    Wels
    Alter
    55
    Beiträge
    512
    rechts oben steht bei chip aber nicht der 32er
    mfg knacki

    /edit:kannst ja auch avr-auto einstellen, genügt auch....

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    unter options-> chip kannst du nochmal einstellen welchen AVR du benutzt. eigentlich sollte der $regfile behehl die einstellungen dort außer kraft setzten aber sicher ist sicher...

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    30
    Beiträge
    378
    Naja, rechts oben stell ich normalerweise auch au m32 um, geht trotzdem nicht. Und in den Options hab ich auch schon (wie oben geschrieben) auf "m32" umgestellt

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    30
    Beiträge
    378
    Ah, ich hab das Problem nun entdeckt. Ich hab das teil an ein 5m langes Druckerverlängerungskabel angeschlossen, war wol zu lang^^

    So, ich hab nun das Programm übertragen, funzt aber nicht richtig. Weiss nicht wo der fehler ist, ich hab nach der Vorlage von Frank gearbeitet. Alsoh RNControl reagiert nicht auf die Taster

    Hier mal der Code, ich hoffe jemand kann das kurz durchgehen^^
    Code:
    Declare Sub Lauflicht1()
    Declare Sub Lauflicht2()
    Declare Sub Lauflicht3()
    Declare Sub Lauflicht4()
    Declare Function Tastenabfrage() As Byte
    Dim Taste As Byte
    Dim Ton As Integer
    $regfile = "m32def.dat"
    
    $crystal = 16000000
    $baud = 9600
    
    
    Sound Portd.7 , 400 , 450                                   'BEEP
    Sound Portd.7 , 400 , 250                                   'BEEP
    Sound Portd.7 , 400 , 450                                   'BEEP
     Config Adc = Single , Prescaler = Auto
    
     Config Pina.7 = Input                                      'Für Tastenabfrage
     Porta.7 = 1
    
     Taste = Tastenabfrage()
     If Taste <> 0 Then
    
          Select Case Taste
             Case 1
                   Call Lauflicht1
    
             Case 2
                   Call Lauflicht2
    
             Case 3
                   Call Lauflicht3
    
             Case 3
                   Call Lauflicht4
    
    
    
          End Select
    
    
     End If
    
    
    
     End
    
     Function Tastenabfrage() As Byte
     Local Ws As Word
    
     Tastenabfrage = 0
     Start Adc
     Ws = Getadc(7)
     If Ws < 1010 Then
          Select Case Ws
             Case 410 To 450
                Tastenabfrage = 1
    
             Case 340 To 380
                Tastenabfrage = 2
    
             Case 265 To 305
                Tastenabfrage = 3
    
             Case 180 To 220
                Tastenabfrage = 4
    
    
          End Select
    
       End If
    
     End Function
    
    Sub Lauflicht1()
    
        Config Portc = Output
       Do
          Porta.0 = 1
          Wait 1
          Porta.0 = 0
          Wait 1
          Porta.0 = 1
          Wait 1
          Porta.0 = 0
          Wait 1
       Loop
       End Sub
    
    
    Sub Lauflicht2()
    
       Config Portc = Output
           Do
          Portc.0 = 1
          Wait 1
          Portc.1 = 1
          Wait 1
          Portc.2 = 1
          Wait 1
          Portc.3 = 1
           Portc.0 = 1
          Wait 1
          Portc.1 = 1
          Wait 1
          Portc.2 = 1
          Wait 1
          Portc.3 = 1
         Loop
    End Sub
    
    Sub Lauflicht3()
        Do
       Config Portc = Output
          Portc.0 = 1
          Wait 1
          Portc.0 = 0
          Wait 1
          Portc.1 = 1
          Wait 1
          Portc.1 = 0
          Wait 1
          Portc.2 = 1
          Wait 1
          Portc.2 = 0
          Wait 1
          Portc.3 = 1
          Wait 1
          Portc.3 = 0
      Loop
       End Sub
    
    Sub Lauflicht4()
     Do
       Config Portc = Output
          Portc.0 = 1
          Wait 1
          Portc.0 = 0
          Portc.1 = 1
          Wait 1
          Portc.1 = 0
          Portc.2 = 1
          Wait 1
          Portc.2 = 0
          Portc.3 = 1
          Wait 1
          Portc.3 = 0
          Portc.4 = 1
          Wait 1
          Portc.4 = 0
            Loop
    End Sub
    gruss Serge

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied Avatar von DIYLAB
    Registriert seit
    31.10.2004
    Ort
    Berlin
    Beiträge
    156
    Zitat Zitat von Roboter n00b
    Ah, ich hab das Problem nun entdeckt. Ich hab das teil an ein 5m langes Druckerverlängerungskabel angeschlossen, war wol zu lang^^gruss Serge
    Moin,

    sorry für das OT, aber wie kommt man eigentlich auf solch eine Idee, einen Progger an einem 5 Meter Kabel betreiben zu wollen?
    Das soll auf keinen Fall anmaßend sein, ich analysiere nur, weil ich selbst ein ganz kleines bisschen Hardware anbiete und auf alles gefasst sein möchte und vieles im Vorfeld ausschließen möchte - darum die Frage.

    Viele Grüße,
    Bruno

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    30
    Beiträge
    378
    Hi
    Nun, ich hab mir nicht gedacht: Komm jetzt häng doch den RNC mal an ein 5 meter kabel, sondern es wäre einfach praktisch gewesen.
    Ich hatte früher mal 2 PCs an einem Drucker, deshalb hat ich noch nen Switch. Das sah so aus:
    PC1----Verlängerungskabel----Kabel----Swich----Kabel----PC2

    da PC2 nun nicht mehr da ist, hatte ich einen Port am swich frei, und ich da es Praktischer ist, einfach zu switchen, statt immer umzustecken, hab ich ihn da rein gemacht.

    gruss

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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