Hallo,
Ich möchte den Pin PD1 bzw- TXD als normalen I/O Pin verwenden.
Folgender Test-Code wurde geschrieben (in Eclipse, C):
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 | #include <avr/interrupt.h>
|
4 |
|
5 | int main(){
|
6 |
|
7 | DDRD = 1<<1; // PD1 as output
|
8 | sei(); // enable global interrupts
|
9 |
|
10 | while(1) {
|
11 | _delay_ms(500);
|
12 | PORTD ^= 1<<1; // toggle pin
|
13 | }
|
14 | }
|
Obiger Code funktioniert nicht. Am Pin tut sich garnichts. Mit einem
Arduino Uno und Nano funktioniert es, komischerweise.
Als nächstes habe ich in der ArduinoIDE den selben Code compiliert und
wieder ohne Erfolg.
Dann hab ich folgendes in der ArduinoIDE probiert:
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 | #include <avr/interrupt.h>
|
4 |
|
5 | void setup() {
|
6 | DDRD = 1<<1;
|
7 | sei();
|
8 | }
|
9 |
|
10 | void loop(){
|
11 | _delay_ms(500);
|
12 | PORTD ^= 1<<1;
|
13 | }
|
Mit der setup- und loop Routine funktioniert es nun.
Hat jemand eine Idee warum dies so ist und wie ich es in normalen C
handeln kann? Möchte ungern die ArduinoIDE verwenden...
Mfg,
Florian