Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: I2C-Port16 Modul, Adressierung Kategorie: Programmierung (von AndrĂ© H. - 4.01.2005 12:10)
Als Antwort auf Re: I2C-Port16 Modul, Adressierung von Peter - 31.12.2004 15:32
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Peter,

> Da hast Du natĂĽrlich Recht. Jetzt habe ich auf "long" umgestellt, bekomme beim letzten Port
> aber trotzdem nur den Wert 8:
>
>
> ////////////////////////////////////
> function lcd_anzeigen(long a)
> {
> rblcd.line(1);
> rblcd.zahl5(a);
> }


Das kann nicht funktionieren !
Die Funktion max7311.getw() arbeitet korrekt und gibt Dir auch den richtigen Wert zurĂĽck.
Jedoch benutzt Du die falsche Funktion zur Ausgabe der Zahl.
Die Funktion lcdext.zahl5() ist, wie deutlich in der Funktionsbeschreibung beschrieben,
nur fĂĽr positive Zahlen geeignet.
Da das Bitmuster der Funktion max7311.getw() als Negative Zahl gesehen wird,
sobald das höchstwetige Bit auf 1 steht, also an P.15 ein high-Pegel anliegt,
kann das diese Funktion nichtmehr anzeigen.
DafĂĽr muĂ?t Du die Funktion lcdext.zahl() verwenden. Diese zeigt auch negative Zahlen an.
Wenn Du allerdings auf dem Display das Bitmuster ausgeben willst,
kannst Du folgende Routine verwenden:

function max7311bitmuster(int addr)
{byte i;
 int wert;
 wert=max7311.getw(addr);
 for i=15 ... >=0 step -1 lcdext.ziff((wert shr i) and 1);
}


MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: I2C-Port16 Modul, Adressierung (von Peter - 4.01.2005 18:37)