Hallo zusammen, ich habe ein Problem mit meinem Cortex M3 NXP LPC 1313. Komischer weise reagieren nicht alle PINs wenn ich versuche sie anzusprechen. Mein Code sieht so aus: #include "lpc_types.h" #include "system_LPC13xx.h" #include "lpc13xx_gpio.h" #include "lpc13xx_adc.h" #include "lpc13xx_syscon.h" int main(void) { GPIO_SetDir(PORT1, GPIO_Pin_1,1); while(1) { GPIO_SetBits(PORT1, GPIO_Pin_1); } } Wenn ich allerdings PORT3 GPIO PIN 1 High setze, dann funktioniert der Code. Ein Hardwareseitiges Problem kann ich ausschließen.
kenne den chip nicht! aber ich vermute mal, das du das Datenblatt studieren musst. Da wird dann sicher stehen das der Pin auch für ne Uart oder ähnliches benutzt werden kann und deswegen nen pull-up widerstand braucht. Viele Grüße
Aber der PIN ist ja auf Ausgang eingestellt. Da brauch ich doch keinen externen Pullup, oder?
du setzt nur die Richtung beim GPIO auf Ausgang, aber der Pin ist per default gar kein GPIO, siehe Datenblatt. Das Register IOCON_R_PIO1_1 muss noch entsprechend gesetzt werden.
Vielen Dank jojos, wie sieht denn dann die Syntax aus. Muss ich einfach nur IOCON_R_PIO1_1 = 0x..... ; schreiben?
ich hatte bisher nur mit dem LPC1769 gespielt, aber lt. Headerfiles müsste LPC_IOCON->PIO1_1 = (LPC_IOCON->PIO1_1 & 0x7) | 0x1; passen.
sorry, kleiner Fehler drin: LPC_IOCON->PIO1_1 = (LPC_IOCON->PIO1_1 & ~0x7) | 0x1; Ist aber auch aus dem Bauch raus und nicht getestet.
Funktioniert leider nicht. Beim Build kommt der Fehler: error:'LPC_IOCON_TypeDef' has no member named 'PIO1_1' Aber ich finde nicht LPC_IOCON_TypeDef. Das müsste doch eigentlich in der lpc13xx_iocon.h stehen.
in der CMSIS2.0 sind die in in LPC13xx.h definiert. Aber richtig, der PIO1_1 heisst da: union { // R_PIO1_1 preferred name rather than original JTAG_TDO_PIO1_1 __IO uint32_t R_PIO1_1; __IO uint32_t JTAG_TDO_PIO1_1; }; also R_PIO1_1. Ist schon verwirrend.
Ich kann R_PIO1_1 bei mir nicht finden, aber dafür gehts wenn ich JTAG_TDO_PIO1_1 schreibe. Vielen Dank. Du hast mir sehr geholfen :)
Gerne. Ich mag die LPCxx, aber wenn man das Zeug mal ein paar Monate liegen lässt kann man sich gleich komplett neu einarbeiten... Der letzte Schrei bei NXP scheint jetzt die LPCOpen zu sein, da ist ziemlich viel zusammengefasst was man sonst mühsam zusammenbauen musste: http://www.lpcware.com/content/nxpfile/lpcopen-platform
Da sich das keiner merken kann hab ich immer die Pin-Layouts (ganz klein) am Arbeitsplatz hängen. Da kann man dann lesen: R/PIO1_1/AD2/CT32B1_MAT0 Somit kann man dann im Header-File nach PIO1_1 suchen und findet: IOCON_R_PIO1_1 oder .R_PIO1_1 oder eben .JTAG_TDO_PIO1_1, wobei die "Reservierung" mal zum JTAG gehörte.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.