PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ne555 an den AVR anschliesen



kater
22.10.2005, 21:46
Ich habe einen Oszillator mit dem NE555 aufgebaut der auf 169.9kHz schwingt. Das konnte ich mit dem Frequenzmesser im Multimeter nachmessen. Der soll nun der timer/counter 1 im tini2313 hochzaehlen. Die Software im tiniy funktioniert wenn ich den Takt mal von Hand mache. Wenn ich den ne555 anschliesse zaehlt der Counter nicht hoch.

Pullups sind aktviert. Hab steigende sowie fallende Flanke mal eingestellt im avr . Und auch mit einem npn Transistor der den Eingang vom Counter nach Masse ziehen sollte funktionit es nicht. Den MCU hab ich auf 8Mhz eingestellt.
Der ne555 laeuft mit 6.2V weil er mit 5V nie so richtig anschwingen wollte.
Ich kann mir das Signal leider mangels Osziloskope nicht anschauen, sollte aber ein Rechtecksignal sein.

Ich hab absolut keine Idee mehr warum der tiniy das Signal nicht annimmt. Vlltl. wisst ihr ja ob man da noch etwas dazwischenschalten muss oder so.

Falls ein genauer Schaltplan und/oder Quelltext fehlt, einfach nur danach fragen.

Gruss kater

bluelight_electronic
22.10.2005, 23:54
Hi,

also naja was ich schon mal komisch find is das dein Atmel mit 5V nich klar kommt ?!?

Hast du ca 100nF ziehmlich nah über VCC & GND vom AVR ?

hmm da du sagst wenn von hand hochzählst geht es geh ich auch davon aus das dein DDR richtig ist ... hmmz

kannst du mal mit deinem Frequenzmessgerät messen wenn der Timer am Tiny angeschlossen ist ob es dann auch noch deine 169khz hat ?

Hmmz wie isn dein Programm Aufruf wie du den Counter hochzählst (kommst du überhaupt oft genug im programm an der stelle vorbei? oder machst du alles über nen interupt ?)

kater
23.10.2005, 12:11
Moin. Was soll ich sagen.. Heute Morgen den Kram nochmal zusmamengesteckt um zu messen und es geht :D Weis der Geier warum. Die Laempchem am STK500 schalten so schnell dass man es nicht mehr im dem Auge erkennen, aber aber mit den Soundkartenoszi :) Hier ist nochmal der Schaltplan und der Quelltext falls es noch jemanden Interesiert. Und in eins bis zwei Tagen gebe ich euch dann mal den Link zu meiner tollen Servosteuerung ;)



#include <stdlib.h>
#include <avr/io.h>

int main()
{

DDRB = 0xff,
PORTB = 100;

DDRD = 0x00;
PORTD = 0xff;

CLKPR = 128; // Die Taktfrequenz auf 8MHz stellen
CLKPR = 0;

TCCR1B |= (1 << CS12) | (1 << CS11); // Timer1 ext. clock falling edge
TCNT1 = 0x00; // Timer-0 Startwert setzen

for(;;) // ever
{

PORTB = TCNT1;

}
}