-
        

Ergebnis 1 bis 3 von 3

Thema: BASCOM Projekt_Unterstützung

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    05.11.2009
    Ort
    Gerblingerode
    Alter
    51
    Beiträge
    207

    BASCOM Projekt_Unterstützung

    Anzeige

    Hallo zusammen,

    um mal wieder mit uC was zu machen habe ich ein Projekt gestartet ... Projekt Mähroboter.
    vor ca 30 Jahren habe ich mit einem Z80 meine Erfahrungen gesammelt und den NDR-Klein-Computer auf ECB mit selbst entwickelten Einsteck-Karten ausgebaut.
    Hat damals viel Spaß gemacht, doch dann kam die Zeit wo PCs zu erschwinglichen Preisen zu bekommen war.
    In der Zwischenzeit habe ich viel mit IOWorrias gemacht und auch dafür den IOW-Socket-Server und das Test-Programm ALL-In-ONne dafür entwickelt, einige werden mich dadurch vielleicht kennen.

    Nun möchte ich aber mal wieder was mit uC machen und dafür braucht man ein Sinnvolles Projekt, z.B. ein Mähroboter.

    Bei der Umsetzung habe ich mich für ATMega und Bascom entschieden.

    Da ich mich für ein PC-Gestütztes System entschieden habe, benötigt man eine FUNK-COM Anbindung ...

    Um langsam in die Materie einzusteigen, habe ich das mal versucht als erstes zu realisieren.
    Aufbau: Arduino(Nano 328p) und ein Terminal-Adapter

    Code:
    $regfile = "m328pdef.dat"
    $crystal = 16000000
    $hwstack = 100
    $swstack = 100
    $framesize = 100
    $baud = 9600
    
    
    Config Serialin = Buffered , Size = 40
    Dim Na As String * 30
    Dim Si As Byte
    
    
    Enable Interrupts
    
    
    Print "Start_Main"
    
    
    Do
        If Ischarwaiting() <> 0 Then
          Si = Inkey()
          If Si <> 13 And Si <> 10 And Len(na) < 30 Then
             Na = Na + Chr(si)
          Else
             If Ucase(na) = "STATUS" Then
                 Print "ACK;STATUS"
                 Waitms 500
                 Print "Status;V1=12;V2=13;S4=2000"                ' Beispiel einer Rückantwort
             Elseif Ucase(na) = "STOP" Then
                 Print "ACK;STOP"
                 Waitms 500
                 Print "STOP"                                                  ' Beispiel einer Rückantwort
             Elseif Ucase(na) = "START" Then
                 Print "ACK;START"
                 Waitms 500
                 Print "START"                                                 ' Beispiel einer Rückantwort
             Else
                 Print "NAK;" ; Na
             End If
             Na = ""
          End If
       End If
    Loop
    Möchte die Verschiedenen Bereicht ( Antrieb / Sensoren / Orientierung ) durch eigene Module(uC) aufbauen und diese mit I2C vom Main-Controller steuern.

    Bei dem Projekt geht es nicht darum das mit so wenig Ressourcen wie möglich zu gestalten, sondern eher um ein Projekt ( Spaß an der Umsetzung )

    Werde bestimmt öfter vor Problemen stehen, wo ich nicht weiter komme, in der Hoffnung die dann durch eure Hilfe bewerkstelligen kann.

    Die ATMega -Serie hat ja uC mit verschiedener Ausstattungen, wie kann ich mit Bascom aus die Hardware Unterstützung zurückgreifen ohne das Bascom versucht das Software mäßig zu realisieren.
    Mir ist noch nicht ganz klar wie z.B. I2C Befehle nicht Softwaremäßig sondern Hardwaremäßig in Bascom umgesetzt werden ... wird das über $regfile = "m328pdef.dat" gesteuert ...

  2. #2
    Unregistriert
    Gast
    Zitat Zitat von Feuerring Beitrag anzeigen
    Die ATMega -Serie hat ja uC mit verschiedener Ausstattungen, wie kann ich mit Bascom aus die Hardware Unterstützung zurückgreifen ohne das Bascom versucht das Software mäßig zu realisieren.
    Mir ist noch nicht ganz klar wie z.B. I2C Befehle nicht Softwaremäßig sondern Hardwaremäßig in Bascom umgesetzt werden ... wird das über $regfile = "m328pdef.dat" gesteuert ...
    $LIB "I2C_TWI.LBX"

    Wird in der BASCOM-Hilfe an verschiedenen Stellen erläutert. Läßt sich mit der Suchfunktion und dem Library-Namen oder auch unter I2C finden.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    05.11.2009
    Ort
    Gerblingerode
    Alter
    51
    Beiträge
    207
    Best Dank "Gast" für die Info ...

    Code:
    ' ------------ Bascom - Parameter ------------------------$regfile = "m328pdef.dat"
    $crystal = 16000000
    $hwstack = 100
    $swstack = 100
    $framesize = 100
    $baud = 9600
    
    
    Print "Start_Main"
    
    
    ' ------------ I2C - Master ------------------------
    $lib "i2c_twi.lbx"
    Config Scl = Portc.5
    Config Sda = Portc.4
    I2cinit
    Config Twi = 100000
    
    
    ' ------------ RS232 - Input ------------------------
    Config Serialin = Buffered , Size = 40
    Enable Interrupts
    
    
    ' ------------ DIM ------------------------
    Dim Na As String * 30                                     'RS232-Input-String
    Dim Si As Byte                                              'RS232 Input
    Dim X As Byte                                               'Temp-Data
    
    
    
    
    
    
    Do
    
    
        If Ischarwaiting() <> 0 Then
          Si = Inkey()
          If Si <> 13 And Si <> 10 And Len(na) < 30 Then
             Na = Na + Chr(si)
          Else
             If Ucase(na) = "STATUS" Then
                Print "ACK;STATUS"
                Waitms 500
                Print "Status;xxxx"
             Elseif Ucase(na) = "ON" Then
                Print "ACK;ON"
                I2csend &H40 , &HFF                            'PCF8574 Write
                I2creceive &H40 , X                             'PCF8574 Read
                Print "ON;" ; X
             Elseif Ucase(na) = "OFF" Then
                Print "ACK;OFF"
                I2csend &H40 , &H00                            'PCF8574 Write
                I2creceive &H40 , X                             'PCF8574 Write
                Print "OFF;" ; X
             Else
                Print "NAK;" ; Na
             End If
             Na = ""
          End If
       End If
    
    
    
    
    Loop
    habe die LIB "i2c_twi.lbx" in meinem einfachem Test-Programm eingebunden und es hat auf Anhieb geklappt ...
    In ein paar Tagen bekomme ich 5 weitere Arduion_Nano, dann werde ich auch mal die kostenpflichtige "I2CSLAVE Library" ausprobieren ...
    da der ATMega328P wohl eine Weiterentwicklung des M128 mit TWI-Hardware (TWI-I2C) ist, sollte auch die Hardware-Unterstützung damit klappen ...
    Gruß Ralf ... Projekt-Beschreibungen www.greinert-dud.de ... "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."

Ähnliche Themen

  1. USB ASP mit Bascom nutzen? bzw AVRDUDE in Bascom eirichten?
    Von dremler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 09.04.2008, 16:35
  2. wie aus bascom *.bas eine bascom lib machen ????
    Von DarkBeast im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 08.12.2007, 19:10

Berechtigungen

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