Gast
#3073521
Guten Morgen zusammen... Ich habe ein kleines Problem mit meinem Tiny13P... Und zwar sieht die Sache so aus: Angefangen zu Programmieren habe ich mit Bascom. Dort habe ich ein einfaches Lauflicht programmiert und dies funktionierte nach dem Flashen auch so, wie man es erwartet. Doch jetzt bin ich zu AVRStudio5 gewechselt, weil ich plane auch andere Chips zu nutzen mit mehr als 4kb Speicher (begrenzung in Bascom). Den Lauflichtcode habe ich also im Studio neu geschrieben. Funktioniert auch tadellos. Jedoch macht mir eine Kleinigkeit Sorgen... 5V beziehe ich via USB-Adapter von meinem Computer. Plus und Minus gehen auf mein Steckbrett mit der Schaltung. Die 4 LEDs für das Lauflicht sind an PB1 - PB4 (PB4 = LED1 -> PB1 = LED4) mit der Anode gesteckt. Kathode geht folglich auf Minus. Zwischen Plus und Minus des Tinys ist ein 100n Kondensator. Pin8 und Pin1 des Tinys sind auch verbunden. Minus des Tinys ist NICHT angeschlossen, Plus schon. Die 4 LEDs leuchten minimal. Das Programm des Tinys läuft nicht. BOD ist auf 4,xV eingestellt. PB0 ist als Eingang definiert, Pull-Up Widerstand ist an auf PB0. dran hängt ein Taster der gegen GND zieht. Drücke ich diesen Taster blinken die LEDs gleichzeitig im Takt. Stecke ich den Minus vom USB dazu, läuft alles wunderbar. Nun stellt sich mir die Frage ob das an meinem Steckbrett liegt, am USB->Steckbrett"adapter", am Programm auf dem Tiny oder ob das "normal" ist. einige weitere Infos zum Programm: #ifndef F_CPU #define F_CPU 1000000UL //CPU-Takt setzen (1MHZ) #endif #include <avr/io.h> //standart #include <util/delay.h> //_delay_ms(x) Funktion nutzen void sleep(uint16_t ms) { //--------------- for (; ms>0; ms--) _delay_ms(1); //Sleep-Funktion } //--------------- void rundlicht() { //--------------- PORTB = 0b00010001; //LED1 an sleep(200); //warte DELAY ab PORTB = 0b00001001; //LED2 an sleep(200); //warte DELAY ab PORTB = 0b00000101; //LED3 an sleep(200); //warte DELAY ab PORTB = 0b00000011; //LED4 an sleep(200); //warte DELAY ab } int main(void) { DDRB = 0b00011110; PORTB = 0b00000001; sleep(100); //Pull-Up setzen lassen while (1) { rundlicht(); } }

