Wastl schrieb:
Man sieht dass man nichts sieht,
Man sieht einzelne 24-bit cyclen, die durch ein längeres delay abgegrenzt sind.
cyclus 1,2,4 und 6 sind ok: 8cyclen Mosi werden nicht dargestellt das das oszi nur 2Kanäle hat, dann kommen 16cyclen Miso. Bei cyclen 3,5,7 kommt auf Miso gar nichts.
Wastl schrieb:
Hier mal ein Design-Vorschlag
Ich versuche ja, einheitlich mit dem avr zu programmieren. Bei mir sieht das zur Zeit so aus:
1 |
#define GLUE(a, b) a##b
|
2 |
#define GPIO(x) GLUE(GPIO,x)
|
3 |
#define reg_dir_out(port,pin) \
|
4 |
{GPIO(port)->MODER&=~(0b11<<(pin*2)); \
|
5 |
GPIO(port)->MODER|= (0b01<<(pin*2)); \
|
6 |
GPIO(port)->PUPDR&=~(0b11<<(pin*2)); \
|
7 |
GPIO(port)->OTYPER&=~(1<<pin); \
|
8 |
GPIO(port)->OSPEEDR&=~(0b11<<pin);}
|
9 |
#define reg_dir_in(port,pin,pullup) \
|
10 |
{/* 0b00no 0b01pu 0b10pd */ \
|
11 |
GPIO(port)->MODER&=~(0b11<<(pin*2)); \
|
12 |
GPIO(port)->PUPDR&=~(0b11<<(pin*2)); \
|
13 |
GPIO(port)->PUPDR|= (pullup<<(pin*2));}
|
14 |
|
15 |
|
16 |
#define pinset(x,y) GPIO(x)->BSRR|=(1<<y)
|
17 |
#define pinclr(x,y) GPIO(x)->BSRR|=(1<<(y+16))
|
18 |
#define pinget(x,y) (GPIO(x)->IDR & (1<<(y)))
|
19 |
|
20 |
#define led1_port C
|
21 |
#define led1_pin 13
|
22 |
|
23 |
#define led1_tog GPIO(led1_port)->ODR ^=(1<<led1_pin)
|
24 |
#define led1_on GPIO(led1_port)->BSRR|=(1<<led1_pin)
|
25 |
#define led1_off GPIO(led1_port)->BSRR|=(1<<(led1_pin+16))
|
aus
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
wird dann
pinclr(C,13);
Aber das ist zur Zeit noch nicht die Baustelle. Im Prinzip möchte ich aber von
dem Code-Mischmasch
/* USER CODE BEGIN USART2_Init 2 */
/* USER CODE END USART2_Init 2 */
zwischen eigenem Code und Cube-generiertem Code weg. Nur die Grundeinstellungen von Cube und den Rest in eigenen Code-files.