Ik ben momenteel bezig met een temperatuur sensor (DS1624 ) te programeren in bascom, deze werkt met I2C.
De waardes van de sensors worden weergegeven op een lcd display (of via rs232 als men max232 word geleverd).

Alles werkt buiten 1 irritant ding (en de print is al gemaakt)
Ik krijg het LCD en de I2C niet aan de praat als ik ze beiden op dezelfde poort programmeer, als ik de I2C bus programmeer op portd.X en het LCD op portb.X hou werkt het wel. Nu heeft mijn leraar digitale technieken gezegd dat ze zou moeten lukken om ze beiden op dezelfde poort te programmeren.
Dit zou moeten lukken door het volgende regeltje bij te voegen:
$LIB "LCD4.LBX"
Zonder die regel krijg ik het volgende op mijn LCD "sens1 255°C" met die regel is het schermpje leeg op een vage zwarte veeg na.

En als ik de help goed begrijp is dat niet het enige dat ik moet veranderen:

With the statement $LIB "LCD4.LBX" you specify that the LCD4.LIB will be used.

The following connections are used in the asm code:
Rs = PortB.0
RW = PortB.1 we dont use the R/W option of the LCD in this version so connect to ground
E = PortB.2
E2 = PortB.3 optional for lcd with 2 chips
Db4 = PortB.4 the data bits must be in a nibble to save code
Db5 = PortB.5
Db6 = PortB.6
Db7 = PortB.7

You can change the lines from the lcd4.lib file to use another port.

Just change the address used :
.EQU LCDDDR=$17 ; change to another address for DDRD ($11)
.EQU LCDPORT=$18 ; change to another address for PORTD ($12)

Die laatste 3 regels snap ik niet, en zelfs als ik ze zou snappen zit ik met het volgende probleem:

Note that LBX is a compiled LIB file. In order to change the routines you need the commercial edition with the source code(lib files). After a change you should compile the library with the library manager.

Of lukt het wel met de freeware versie?

dit is de pinaansluiting die ik wil gebruiken voor het LCDtje:

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7

Van de gewijzigde lcd4.lib kan je met de commercieele versie een .LBX maken, nu niet.

enig idee hoe je dat moet doen? Of is er iemand op CO die het voor mij zou willen doen?

.EQU LCDDDR=$17 ; change to another address for DDRD ($11)
.EQU LCDPORT=$18 ; change to another address for PORTD ($12)
want dit snap ik niet echt, of staat er in de lib zelf meer commentaar bij zodat het wat beter verstaanbaar is.

Of we de commerciele versie in het school hebben weet ik niet, ik hoop vanwel want anders heb ik pech
En gaat dit inderdaad mijn probleem verhelpen?

edit:
bij men versterker was afgelope zondag de temperatuur niet boven de 55°C uit gekomen de behuizing was toen wel niet afgesloten vanwege al de draadjes maar er was niet veel wind. Het volume stond toen relatief stil, vind ik, de leraren gaan het er waarschijnlijk niet mee eens zijn :). Ik denk dat ik er maar een ventilatortje ga inplaatsen.

[Bericht gewijzigd door watchout3 op (27%)]

Op 18 mei 2009 22:05:39 schreef watchout3:
enig idee hoe je dat moet doen?

Zoals bescheven is, EQU's zijn alliassen die verder door de compiler gebruikt worden. Maar dat kan jij dus niet wijzigen.

Of dat alles is weet ik niet.

Ik kan wel door de grond zakken van schaamte |:(
Blijkbaar was er een slechte soldeerverbinding waardoor de SDA niet werd doorgevoerd naar de pinheader waar ik men draadjes kon insteken.

Nu doet hij het dus wel.

In de lib staat er eigenlijk exact hetzelfde als ik heb gepost. Hoe het werkt weet ik niet maar met $lib "lcd4.lbx" heb je minder code nodig volgens de manual. (maar wel 2 pinnen van portb kwijt?)