Willkommen im Club.Aber ich bin ja auch langsam senil.
http://avrhelp.mcselec.com/config_port.htm
http://avrhelp.mcselec.com/index.html
(Immerhin kennen wir noch die Regeln für Groß- und Kleinschreibung...)
Willkommen im Club.Aber ich bin ja auch langsam senil.
http://avrhelp.mcselec.com/config_port.htm
http://avrhelp.mcselec.com/index.html
(Immerhin kennen wir noch die Regeln für Groß- und Kleinschreibung...)
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo dnggn,
beim ATtiny85 ist PB5 der Reset Pin. Hast Du daran gedacht?
Eigentlich bleibt der Reset bei ISP Programmierung für die Reset Funktion reserviert. Könnte mir bei Deinem Programm vorsellen, das der Tiny dauern resettet.
Vor kurzem gab es hier einen thread zur Stromaufnahme des IS471. Nicht das hohe Stromspizen auch noch zu Resets führen.
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
danke schon mal für die antworten, aber ganz verstehe ich das nicht ... also nur pinb.0, pinb.1 usw. hat nicht funktioniert, selber fehler. muss ich jetzt beim input immer eine zahl und einen buchstaben eingeben und beim output nur buchstabe? tut mir leid, ich stehe total auf dem schlauchdanke für die hilfe
EDIT: achja und reset pin hab ich jetzt nicht besonders drauf geachtet, heißt das ich kann diesen port gar nicht als solchen benutzen?
Was genau meinst du? Ich verstehe die Frage leider nicht so ganz.
Das mit Config Port und Config Pin ist in der Tat verwirrend.muss ich jetzt beim input immer eine zahl und einen buchstaben eingeben und beim output nur buchstabe? tut mir leid, ich stehe total auf dem schlauch
Eindeutig geht´s mit dem DDR-Register (DDR = Data Direction Register):
DDRX.Y = 0 bedeutet: Anschluss X.Y ist ein Eingang
DDRX.Y = 1 bedeutet: Anschluss X.Y ist ein Ausgang
Da bei Power-On-Reset alle DDDR-Register den Wert 0 enthalten, sind alle I/O-Anschlüsse zunächst mal Eingänge. Für diese Aufgabe muss man sie nicht konfigurieren, das sind sie ganz von alleine.
Soll ein Anschluss ein Ausgang werden, muss das entsprechende Bit im DDR-Register auf 1 gesetzt werden. Das kann entweder einzeln geschehen, also z.B.
DDRB.2 = 1
DDRB.3 = 1
DDRB.4 = 1
DDRB.5 = 1
oder Du setzt gleich alle 8 Bits des Registers:
DDRB = &B00111100 ("&B" heißt, dass die folgende Zahl binär ausgeschrieben wird)
Mit diesem Befehl sind die Anschlüsse B5,B4,B3 und B2 Ausgänge, der Rest sind Eingänge.
Und wenn Du den PullUp-Widerstand eines Eingangs aktivieren willst, musst Du eine 1 in das entsprechende PORT-Register schreiben. Also für Deine beiden Eingänge also z.B.
PORTB.0 = 1
PORTB.1 = 1
In anderen Worten:
1. Ob Ein- oder Ausgang, legt das DDR-Register fest.
2. Ist der Anschluss ein Ausgang, legt das PORT-Register seinen Pegel fest.
3. Ist er ein Eingang legt das PORT-Register fest, ob der PullUp-Widerstand aktiviert wird.
Jetzt etwas klarer?
Allgemein ist das Programm richtig geschrieben.
Wie Sauerbruch schon schreibt das aktivieren der internen Pullups (ist unten mal bei dein Programm eingebunden)
Allgemein versteh ich auch nicht warum du ein Attiny verwendest und den Reset aus programmierst.
Was für ein Programmiergerät verwendest du?
Überträgst du den Hexcode mit Basom oder mit ein anderes Programm.
Ich glaube eher das in der Richtung was nicht richtig eingestellt ist und dadurch keine (fehlerhafte) Übertragung erfolgt.
mfg
Rick
$regfile = "attiny85.dat"
$crystal = 1000000
Config Pinb.0 = Input
Portb.0 = 1
Config Pinb.1 = Input
Portb.1 = 1
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
Do
If Pinb.0 = 1 And Pinb.1 = 1 Then
Portb.2 = 1
Portb.4 = 0
Portb.3 = 1
Portb.5 = 0
Else
End If
If Pinb.0 = 0 And Pinb.1 = 0 Then
Portb.2 = 0
Portb.4 = 1
Portb.3 = 0
Portb.5 = 1
Else
End If
If Pinb.0 = 0 And Pinb.1 = 1 Then
Portb.2 = 1
Portb.4 = 0
Portb.3 = 0
Portb.5 = 1
Else
End If
If Pinb.0 = 1 And Pinb.1 = 0 Then
Portb.2 = 0
Portb.4 = 1
Portb.3 = 1
Portb.5 = 0
Else
End If
Loop
End
Ja, Du kannst ihn zunächst mal nicht als "normalen" I/O Portpin benutzen.
Es gibt folgende Beschreibung zum RESET Pin im Datenblatt:
Wenn Du seit Kauf an den Fuses nichts verändert hast ist PB5 also RESET. Die output driver sind deaktiviert. Bedeutet,Zitat von ATtiny85 Datenblatt (doc2568)
PORTB.5 = 0 oder 1 hat zumindest nach außen keine Wirkung.
Nun kommt es auf die Deine Beschaltung des PB5 an. Sieht so aus, als wenn dort über die Motorbeschaltung ein GND auf RESET (PB5) kommen könnte und dann der µC resettet.
Wenn Du also nicht ganz genau weißt, was sich da tut, laß den PB5 frei bzw. verwende ihn nur als RESET
Schaltplan Deines Aufbaus würde weiterhelfen.
Gruß
Searcher
Geändert von Searcher (22.09.2011 um 10:42 Uhr)
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
ich hab mal einen schaltplan mit pc entworfen, ich bin mir jetzt ziemlich sicher dass es am reset pin liegt, denn die programmänderungen haben alle nichts bewirkt ... soll ich einfach noch einen zweiten attiny anschließen oder lieber einen größeren uC bestellen?
zum schaltplan, 1Y bis 4Y werden mit den beiden motoren verbunden.
Hallo dnggn,
um bei Deiner Schaltung den Reset frei zu bekommen, brauchst Du mehr Pins an dem µC. zB ginge ein ATtiny44. Ein zweiter Tiny macht die Sache zu kompliziert, da die beiden ja miteinander kommunizieren müßten?
Leider kann ich Dir zu sonstigen Schaltung wenig sagen, da ich selbst die verwendeten Komponenten noch nicht genutzt habe.
Folgende Dinge, auf die mir aufgefallen sind:
- Reset ist klar. Den kannst Du so nicht als I/O benutzen.
- Die Batteriespannung ist mit 6V vor dem Spannungsregler sehr gering. Was ist das für einer? Möglicherweise gibt der Dir nicht genug Spannung am Ausgang. Vielleicht bricht Dir die Spannung ein, wenn die Motoren Strom bekommen? Wieviel Strom brauchen die Motoren?
- Kondensatoren am Spannungsregler und 100nF am µC sind nicht vorhanden.
- Die LEDs haben keine Vorwiderstände.
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Lesezeichen