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 | ||
| ||
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) |