Him ich versuche gerade meinen QEI am lm3s818 zum laufen zu bewegen,
aber irgendwie verändert sich der voreingestellte Wert nicht. Die
Eingänge als GPIO funktioinieren, das habe ich getestet. Sieht wer woran
es liegen kann?
Anderec Code ist auch drin, da ich mitbekommen habe, daß die Reihenfolge
teilweise wichtig ist.
1 | SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
|
2 | SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
|
3 | SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); // nokia reset / encodertaste
|
4 | SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);// led
|
5 | SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); // 2 tasten PE0, PE1
|
6 |
|
7 | SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI0);
|
8 |
|
9 |
|
10 | //
|
11 | QEIConfigure(QEI_BASE, (QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_RESET_IDX |
|
12 | QEI_CONFIG_QUADRATURE | QEI_CONFIG_SWAP), 23999);
|
13 | SysCtlPeripheralReset(SYSCTL_PERIPH_QEI0);
|
14 | QEIEnable(QEI0_BASE);
|
15 | // vorbelegen mit 123
|
16 | QEIPositionSet(QEI0_BASE,123);
|
17 |
|
18 | // Configure the appropriate pins to be SSI instead of GPIO. Note that
|
19 | // the chip select is kept as a GPIO to guarantee the appropriate
|
20 | // signalling to the Atmel device.
|
21 | //
|
22 | GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, SSI_CS);
|
23 | GPIOPinWrite(GPIO_PORTA_BASE, SSI_CS, SSI_CS);
|
24 | GPIOPinTypeSSI(GPIO_PORTA_BASE, SSI_CLK | SSI_TX | SSI_RX | SSI_CS);
|
25 |
|
26 | //
|
27 | // Configure and enable the SSI port for master mode.
|
28 | //
|
29 | SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,
|
30 | SSI_MODE_MASTER, 1000000, 9);
|
31 | SSIEnable(SSI0_BASE);
|
32 |
|
33 | // LED
|
34 | GPIODirModeSet(GPIO_PORTD_BASE, LED, GPIO_DIR_MODE_OUT);
|
35 | GPIOPinWrite(GPIO_PORTD_BASE, LED, 0);
|
Auslesen des Wertes erfolgt mit QEIPositionGet(QEI0_BASE);