- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 7 von 7

Thema: Word in Integer?...

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2005
    Beiträge
    10

    Word in Integer?...

    Anzeige

    E-Bike
    Hallo,
    Hab da nochmal eine grundsätzliche Frage.
    Vom AD-Wandler bekomme ich mit Getadc ja ein Word zurück. Nun würde ich gerne aus diesem Word einen Integer-Wert machen, um damit weiter zu rechnen und zu vergleichen... allerdings habe ich nichts gefunden, wie es geht.
    Daher meine Frage:
    Wie mache ich aus einem Word ein Integer? oder geht das etwa mit einem einfach '='.
    Bascom meckert beim kompilieren an dieser Stelle immer rum...

    Danke für eure Hilfe
    cu
    Karlja

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Sio kannst du beides haben
    DIM Adcword as word
    DIM Adcint as integer at Adcword overlay

    adcword = getadc(x) ' jetzt gilt das word
    ' sonst sagtst du adcint dazu, je nachdem
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35
    Ich weiß, alter Thread, aber ist das einzige, dass ich gefunden habe zu dem Thema.

    Also ich möchte folgendes rechnen:
    Restzeit = Spielzeit - Seccounter

    Spielzeit und Seccounter sind Word, Restzeit ist Integer, da auch negative Werte herauskommen könnten, wenn da was mit den ISRs nicht klappt.

    Jetzt bekomme ich aber:
    Error 242: Source Variable does not match the target variable.

    Wie muss ich das denn da mit der Typenumwandlung machen?
    Das Ergebnis der Rechnung ist immer unter dem maximal zulässigen Wert eines Integers.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Hallo Dunuin,
    der Fehler muss an etwas anderem liegen. Das hier kmpiliert einwandfrei und rechnet auch richtig:

    Dim Restzeit As Integer
    Dim Spielzeit As Word , Seccounter As Word
    Spielzeit = 100
    Seccounter = 10000
    Restzeit = Spielzeit - Seccounter 'Restzeit = -9900

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35
    Ah, ich sehe gerade, dass ich Spielzeit als Konstante angegeben habe, weil die sich eigentlich nicht ändert.

    Dann mag Bascom da wohl einfach keine Konstanten.
    Werde da gleich mal eine normale Word-Variable daraus machen und gucken ob es klappt.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Das hier

    Dim Restzeit As Integer
    Dim Seccounter As Word
    Const Spielzeit = 100
    Seccounter = 10000
    Restzeit = Spielzeit - Seccounter

    kompiliert er bei mir auch ohne Fehler und rechnet richtig.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Evtl hast du die mcsbyte.lbx eingebunden. Dann lassen sich nicht mehr alle Datentypen konvertieren.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

Berechtigungen

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

LiFePO4 Speicher Test