Hallo,
ich habe leider immernoch Schwierigkeiten mit meinem Display, die aber
scheinbar von einem unsauberen Pegel verursacht werden.
Deshalb habe ich einen kleinen Test geschrieben:
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 | #define CTRL_PORT PORTA
|
4 | #define WR_PIN 0
|
5 | #define WR_H CTRL_PORT.OUTSET = 1<<WR_PIN;
|
6 | #define WR_L CTRL_PORT.OUTCLR = 1<<WR_PIN;
|
7 |
|
8 | void Clock_init(void)
|
9 | {
|
10 | OSC.CTRL |= OSC_RC32MEN_bm;
|
11 | while(!(OSC.STATUS & OSC_RC32MRDY_bm));
|
12 | CCP = CCP_IOREG_gc;
|
13 | CLK.CTRL = 0x01;
|
14 | }
|
15 | int main(void)
|
16 | {
|
17 | Clock_init();
|
18 | _delay_ms(150);
|
19 | CTRL_PORT.DIR = 0xFF;
|
20 | while(1)
|
21 | {
|
22 | WR_L
|
23 | _delay_us(1);
|
24 | WR_H
|
25 | _delay_ms(1);
|
26 | }
|
27 | }
|
F_CPU ist in der GCC Toolchain in AVR Studio 6 auf 32000000 gesetzt.
CPU ist ein ATXMEGA256D3. Dieser wird betrieben auf einem STK600 und
einem JTAG ICE MKii.
Ich habe nun das Ausgangssignal am PORTA.0 gemessen. Signal siehe
Anlage.
Zum Zeitpunkt der Messung habe ich außer einem kurzem Stück Kabel nichts
anderes am besagten Portpin angeschlossen.
Warum ist dies kein sauberes Rechtecksignal?
Gruß
Philipp