Forum: Mikrocontroller und Digitale Elektronik [ADUC7026] IAR Ebedded Workbench + I2C


von zeroflow (Gast)


Lesenswert?

Hi Leute, meine Frage an euch.

Ich muss bei meiner Diplomarbeit unter anderem einen Ultraschallsensor 
per I2C anbinden.

Soweit so gut, in Keil kann ich den Sensor ansprechen z.B mit dem code 
unten löse ich eine messung aus, was auch mit einem blinken quittiert 
wird.
1
I2C1ADR = adress;   // set i2c address(LSB = 0, Master Write)
2
I2C1MTX = 0x1;      // write Byte

Das erste, weiß jemand wie ich das lesen genau mache?
Zur Zeit probiere ich es mit:
1
#define count 0x00; // Number of bytes to be recieved - 1
2
3
I2C1CNT = count;    // Number of bytes to be read from slave
4
I2C1ADR = adress+1; // set i2c address  (LSB = 1, Master Read)

und dann im Interrupt das I2C1MRX register in eine Variable hinein 
speichern

Das 2te:
Ich möchte im IAR embedded Workbench debuggen, damit ich sehe was genau 
in den Registern drin is (ich hab da nen fixen wert 0x80 der beim 
auslesen rauskommen muss), und würde da eben gerne schauen was im 
I2C1MRX Register umgeht.

Nun aber, sobald ich GP1CON auf 0x2200 (I2C1SCL & I2CSDA & restliche 
Ports standard) setze, bricht er mir ab. obwohl ja die UART 
Schnittstelle zum debuggen ja eigentlich auf den 2 Pins ist die ich 
nicht verändere.

Hat jemand dieses Problem auch gehabt und vl. einen Tip für mich?

mfG zeroflow

von Thomas A. (Firma: HTBLuVA Wr. Neustadt) (zeroflow)


Lesenswert?

mal Pushen, bin mal registriert damits ned als "Gast" gepostet wird :D

mfG

von Tilo (Gast)


Lesenswert?

Wie setzt du die Pins für I2C, mit
1
GP1CON = 0x2200
?

Dir ist schon klar, dass in diesem Fall die Uart Pins auf GPIO 
zurückgestellt werden?

Eventuell hilft dir der Beispielcode unter 
http://www.stud.uni-karlsruhe.de/~usjp/aduc weiter?
Da ist afaik auch etwas für I2C dabei.

von Thomas A. (Firma: HTBLuVA Wr. Neustadt) (zeroflow)


Lesenswert?

Jo danke für die Idee, bin allerdings auf das dann auch drauf gekommen 
dass mir das immer an dem Punkt abschmiert....

Habs dann nur die Bits für I2C umgeschaltet, und es hat weiter 
funktioniert, bis ich dann meine Funktionen aufrufe.

Allerdings durch ne Idee gehts nun sowieso

-> Problem gelöst

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.