-         

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

Thema: Einige Fragen zu Bascom

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.09.2004
    Ort
    Waldsee
    Alter
    32
    Beiträge
    44

    Einige Fragen zu Bascom

    Anzeige

    Also 1.
    Wie funktionieren die datalines ?
    data: &HFF....
    Werden die nacheinander abgefragt bis zur nächsten sprungmarke?

    2. Wie benutzt man (beim mega den pin T0 um den timer zu starten und zu stoppen das hat doch etwas mit interrupt zu tun oder?
    Und kann man den pin mit debounce entprellen oder muss das mit nem externen rc gemacht werden?

    3. Wie lange braucht der mega bis er einen ausgelösten interrupt ausführt (mit register sichern und so weiter) und bis er wieder zum Hauptprogramm zurückkehrt.

    4.Kann die serielle UART daten puffern bis sie abgeholt werden (ohne belastung der Prozessorzeit)

    ich weiß fragen über fragen und ich danke euch schonmal für die kompetenten antworten.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    fang ich mal von hinten an
    4.Kann die serielle UART daten puffern bis sie abgeholt werden (ohne belastung der Prozessorzeit)
    im mega gibts nen empfangsbuffer von einem byte, dh das jeweils letzte zeichen liegt dort, bis es ausgelesen wurde.
    tipp: es gibt nen interrupt, der in diesem fall ausgelöstz wird. damit kansnt du dann schnellstmöglichst die daten abspeichern...

    3. Wie lange braucht der mega bis er einen ausgelösten interrupt ausführt (mit register sichern und so weiter) und bis er wieder zum Hauptprogramm zurückkehrt.
    ich hab kein ahnung wie effizient Bascom den code hinkriegt. es dürfte aber nicht viel mehr als 100 takte dauern schätz ich mal...

    2. weiß ich nicht, weil ich mich mit den timern noch nicht näher beschäftig habe

    1. weiß ich auch nicht...

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    53
    Beiträge
    1.305
    Blog-Einträge
    1
    Also Generell galt in Basic dass DATAs nur sequenziell abgerufen werden konnten. Aber eben nur ein Datablock pro Proramm.

    Bascom scheint hier anders zu arbeiten.
    Mittels dem Restore Befehl und der Sprungmarke wird auf den Anfang eines DATA Satzes gesprungen / gewechselt.

    Somit ist es möglich mehrere Data Blöcke unterschiedlicher Typen zu definieren.

    Durch das Restore wird aber immer zum ersten Eintrag des Satzes gesprungen (sonst dürfte der Befehl nicht restore heissen).


    ALSO:
    Mit Restore Dta4 wir der Zeiger auf den ersten Eintrag nach der Sprungmarke Dta4: gesetzt.


    (Habe ich nicht geprüft, aber die Hilfe gibt das so her.)



    Code:
    Action
    
    Instruct the compiler to store the data in the DATA lines following the $DATA directive, in code memory.
    
     
    
    Syntax
    
    $DATA
    
    
    
    Remarks
    
    The AVR has built-in EEPROM. With the WRITEEEPROM and READEEPROM statements, you can write and read to the EEPROM.
    To store information in the EEPROM, you can add DATA lines to your program that hold the data that must be stored in the EEPROM.
    A separate file is generated with the EEP extension. This file can be used to program the EEPROM.
    
    The compiler must know which DATA must go into the code memory or the EEP file and therefore two compiler directives were added.
    
    $EEPROM and $DATA.
    
    $EEPROM tells the compiler that the DATA lines following the compiler directive, must be stored in the EEP file.
    To switch back to the default behavior of the DATA lines, you must use the $DATA directive.
    
    The READ statement that is used to read the DATA info may only be used with normal DATA lines. It does not work with DATA stored in EEPROM.
    
    
    See also
    
    $EEPROM , READEEPROM , WRITEEEPROM 
    
    ASM
    
    NONE
    
    Example
    
    '-------------------------------------------------------------
    '                      READDATA.BAS
    '             Copyright 1999-2002 MCS Electronics
    '-------------------------------------------------------------
    
    Dim A As Integer , B1 As Byte , Count As Byte
    Dim S As String * 15
    Dim L As Long
    Restore Dta1                                                'point to stored data
    For Count = 1 To 3                                          'for number of data items
       Read B1 : Print Count ; "  " ; B1
    Next
    
    Restore Dta2                                                'point to stored data
    For Count = 1 To 2                                          'for number of data items
       Read A : Print Count ; "  " ; A
    Next
    
    Restore Dta3
    Read S : Print S
    Read S : Print S
    
    
    Restore Dta4
    Read L : Print L                                              'long type
    
    End
    
    
    Dta1:
    Data &B10 , &HFF , 10
    Dta2:
    Data 1000% , -1%
    
    Dta3:
    Data "Hello" , "World"
    'Note that integer values (>255 or <0) must end with the %-sign
    'also note that the data type must match the variable type that is
    'used for the READ statement
    
    Dta4:
    Data 123456789&
    'Note that LONG values must end with the &-sign
    'Also note that the data type must match the variable type that is used
    'for the READ statement

  4. #4
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.989
    Blog-Einträge
    1
    Was den seriellen Buffer betrifft, da gibts es in Basom auch Funktionen die Buffer für die Ein- und Ausgabe anlegen. Die Buffergröße legst du selbst fest. In vielen ANwendungen ist es sehr empfehlenswert diese zu nutzen.

    z.B. Beispiel:
    Config Serialin = Buffered , Size = 160


    Gruß
    Frank

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.01.2005
    Ort
    hessen
    Alter
    29
    Beiträge
    1.099
    aber woher weiß ich genau wie groß ich die machen soll??

    gruß
    patrick

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    18.09.2004
    Ort
    Waldsee
    Alter
    32
    Beiträge
    44
    Aha also man schreibt die datalines ins eeprom macht das Bascom automatisch?

    was den buffer betrifft ich lege den also fest und kann daten reinschreiben und irgendwann abrufen ohne wertvolle prozessorzeit beim beschreiben zu verschwenden?

    gibt es eigentlich einen befehl der alle ausgangsports auf low setzt?

    jetzt weiß ich aber ímmernoch nicht wie das mit dem timer funktioniert.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    was den buffer betrifft ich lege den also fest und kann daten reinschreiben und irgendwann abrufen ohne wertvolle prozessorzeit beim beschreiben zu verschwenden?
    nein, das schreiben in den buffer wird von Bascom wahrscheinlich in einen interupt gepackt. somit brauchst du halt zwischendurch immer nen paar takte dafür...
    was hast du vor? ist deine anwendung sooo zeitkritisch? dannn würd ich schon fast von Bascom zu assembler wechseln...

    gibt es eigentlich einen befehl der alle ausgangsports auf low setzt?
    also alle pins eines port ist klar... und das müsstest du dann nen paar mal machen um sämtliche ports zu schalten...
    zeit dafür: in asm würd die ganze aktion fünf takte brauchen bei vier ports am avr...


    aber woher weiß ich genau wie groß ich die machen soll?
    ist doch klar: so groß dass alle daten reinpassen die ankommen könnten, bis der buffer das nächste mal ausgelesen wird....

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    18.09.2004
    Ort
    Waldsee
    Alter
    32
    Beiträge
    44
    wirklich zeitkritisch ist sie warscheinlich nicht ist nur son erstes uC projekt und ich kann die zeit noch nicht so einschätzen. aber ich glaub für meinen fall wird es allemal genügen.

    wie brennt man die datalines ins eeprom? kann man das bei Bascom einstellen oder macht er das automatisch?

    Ich hab mir das mit den timern mal in der hilfe angeschaut, aber wirklich schlau bin ich daraus nicht geworden also wenn jemand weiß wie das funktioniert...

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    18.09.2004
    Ort
    Waldsee
    Alter
    32
    Beiträge
    44
    und gleich noch was werden die datalines vom flash speicher aus adressiert bzw habe ich die vollen 512 byte zur verfügung oder fressen die Sprungmarken auch speicher?

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    18.09.2004
    Ort
    Waldsee
    Alter
    32
    Beiträge
    44
    Wie kann man hex daten spiegeln (in bascom) z.b. 7f und gespiegelt ef
    bzw 10110011 gespiegelt 11001101

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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