Re: Mega32: PortB.4 bis PortB.7 als Ausgang? Kategorie: Programmierung Basic (von Thomas Heike - 14.11.2011 14:35) | ||
Als Antwort auf Mega32: PortB.4 bis PortB.7 als Ausgang? von Thomas Heike - 14.11.2011 14:00 | ||
| ||
SPI_Disable() ist das Zauberwort, und mu� noch vor den Befehlen stehen, welche die Pins als Ausgang konfigurieren. In der Hilfe zur CControl-Entwicklungsumgebung steht bei der Pinzuordnung an dieser Stelle einfach "USB-Kommunikation". Das Durchforsten der Bibliotheksfunktionen brachte es dann: "Das deaktivieren der SPI Schnittstelle verhindert die Benutzung USB Schnittstelle" Aha. Wie wäre es mit einer ausführlicheren Beschreibung, welche Pins nach welchen Voraussetzungen als allgemeine I/O-Pins nutzbar sind? > Hallo zusammen, > > ich habe Schwierigkeiten, die obere Hälfte des PortB einer Mega32 auf Projectboard als Ausgang > zu nutzen. > > Mit einem L293D sollen zwei kleine Motoren abwechselnd gesteuert werden. PortB.3 (Timer 0 Out) > habe ich mit allen Enables des L293D verbunden, PortB.4 bis PortB.7 steuern die Richtungs- > eingänge der vier Halbbrücken. > > Dabei funktioniert ein Motor einwandfrei, der andere nur in einer Richtung. Messung ergab, da� > PortB.6 auf 5V hängenbleibt, auch wenn er 0V ausgeben soll. > > Danach habe ich Pulldowns (4,7k) drangelötet. > > Jetzt: Alle Eingänge wechseln zwischen 0V und 0,5V, gehen also nicht mehr richtig auf High. > Mein Verdacht: Die Ports sind gar nicht als Ausgänge aktiv, sondern schalten nur den > internen Pullup an und aus. > > Wie kann das sein, bei folgendem Code? > > Sub main() > Port_DataDirBit(11,1) > Timer_T0PWM(1,PS0_64) > Port_DataDirBit(12,1) > Port_DataDirBit(13,1) > Port_DataDirBit(14,1) > Port_DataDirBit(15,1) > Motortest() > End Sub > > Sub Motortest() > Dim PWMWert As Integer > Do While 1 > Port_WriteBit(12,0) > Port_WriteBit(13,1) > Port_WriteBit(14,0) > Port_WriteBit(15,1) > For PWMWert = 1 To 255 > Timer_T0PW(PWMWert) > AbsDelay(10) > Next > AbsDelay(1000) > For PWMWert = 255 To 1 Step -1 > Timer_T0PW(PWMWert) > AbsDelay(10) > Next > Port_WriteBit(12,1) > Port_WriteBit(13,0) > Port_WriteBit(14,1) > Port_WriteBit(15,0) > For PWMWert = 1 To 255 > Timer_T0PW(PWMWert) > AbsDelay(10) > Next > AbsDelay(1000) > For PWMWert = 255 To 1 Step -1 > Timer_T0PW(PWMWert) > AbsDelay(10) > Next > End While > End Sub > > > | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum