Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Mega32: PortB.4 bis PortB.7 als Ausgang? Kategorie: Programmierung Basic (von Thomas Heike - 14.11.2011 14:00)
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128
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:

Re: Mega32: PortB.4 bis PortB.7 als Ausgang? (von Thomas Heike - 14.11.2011 14:35)