Der Code sollte soweit eigentlich passen, nur dass man eigentlich die Endlosschleife ans Ende packt, also:
DDRB = ...;
PORTB = ...;
while(1);
In welcher Frequenz blinkt sie denn ungefähr?
Dieses Programm funzt bei mir nicht so wie es soll. Über einen Transistor hab ich eine Glühbirne angeschlossen und statt dass die an ist blinkt die! Was kann da sein? Hab auch schon mehrere ATmega8s ausprobiert! Auch wenn die Zuweisung an PORTB nicht in der Schleife steht passiert dasselbe. Könnt ihr mir helfen?Code:#include <avr/io.h> int main( void ) { DDRB = 0xFF; while( 1 ) { PORTB = 0xFF; } return 0; }
Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...
Der Code sollte soweit eigentlich passen, nur dass man eigentlich die Endlosschleife ans Ende packt, also:
DDRB = ...;
PORTB = ...;
while(1);
In welcher Frequenz blinkt sie denn ungefähr?
Die Lampe blinkt ca. 2 mal die Sekunde.
Mit der while(1)-Schleife am Ende hab ichs auch schon ausprobiert, hab aber gedacht das dann die Schleife vielleicht wegoptimiert wird, und der Controller immer resettet. Aber geändert hat sich nix.
Ich dachte erst es liegt an irgendwelchen PWM-Einstellungen, da ich auf dem Controller vorher etwas mit PWM ausprobiert hatte, aber auch mit einem anderen fabrikneuen ATmega8 wars dasselbe.
Ich denke das es an irgenwie soetwas wie einem andauerndem Reset liegt, aber eigentlich ist Reset brav mit 4k7 gegen Vcc gelegt. Ich verstehs einfach nicht! Bei einem so einfachen Code! Und die Schaltung hat auch schonmal funktioniert!
Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...
Kann es sein, dass Deine Spannungsquelle nicht genug Strom für die Lampe liefern kann?
Das hört sich nämlich nach folgendem Ablauf an:
- Controller läuft los
- Port wird eingeschaltet
- Transistor schaltet durch
- Strom fließt durch Lampe
- Spannung bricht durch zu hohen Stromfluss zusammen
- Controller geht durch mangelnde Spannung aus
- Transistor sperrt - es fließt kein Strom mehr
- Spannung erholt sich wieder
- das ganze geht von vorne los...
Gruß,
askazo
Entferne einmal den Befehl return. Du konntest den Befehl Portb vor die while Schleife setzten und in der while Schleife nichts.
Hallo,
Wie sicher bist du dir, dass du die richtigen hex-Datei flasht?da ich auf dem Controller vorher etwas mit PWM ausprobiert hatte
Gruß
Jens
Hm... Auf askazo's Idee hin hab ich mal nachgemessen scheint wohl so dass der Basiswiderstand zu klein war. hatte 470 genommen mit der annahme das sei schon ok. jetzt gehts auf jeden fall. (mit 4X470 Ohm )
Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...
So, jetzt hab ich das nochmal auf einer Lochrasterplatine aufgebaut und jetzt gibts wieder ein Problem: die Spannung bricht wieder ein!
Bild hier
So ist der Schaltplan jetzt, die LED's sollen Glühbirnen sein, die mit PWM angesteuert werden. Wenn der Gesamtstrom auf ca. 9 bis 11mA angestiegen ist scheint irgendwie der Controller neuzustarten bzw. die 5V-Spannung bricht wahrscheinlich ein. Da der Einbruch aber nicht mit dem Multimeter messbar ist (zu träge), kann ich mir nicht ganz sicher sein.
Am Eingang liegen ca. 16V~.
Die Stromquelle kanns nicht sein, wenn ich die Glühbirnchen einfach so anschließe gehen da nämlich locker 50mA durch.
Was kann da sein?
[Edit]: Sorry, ist eigentlich eher was für den Elektronikbereich, aber ich wollte nicht nochmal einen neuen Beitrag zum ähnlichen Thema aufmachen!
Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...
Schließe einmal die Lapen ab und hänge normale dioden dran. Für was ist der Widerstand vom Spg Regler zu PC6 (R1)?
Mach einmal den 1µ Elko etwas größer, die beiden Kondensatoren gehören direkt zum Spannungsregler, zusätzlich noch ein Kondensator 100n direkt an VCC des µC.
PC6 ist der Reset des Mega8.
Nicht vergessen auch AVCC zu versorgen, sonst funktioniert PORTC nicht.
Lesezeichen