PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe bei Basecon programmierung rs232



Geck0
16.11.2008, 16:30
Hallo,
Ich möchte gern die einzelnen Ports von meinem Attiny via Pc ansteuern, doch leider komm ich in der Programmierung nicht weiter bzw. sie funktioniert nicht so wie ich will.



$regfile = "2313def.dat"
$framesize = 24
$swstack = 8
$hwstack = 32
$crystal = 12000000
$baud = 9600

Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinb.4 = Output

Portb.0 = 1
Portb.1 = 1
Portb.2 = 1
Portb.3 = 1
Portb.4 = 1
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
Portd.5 = 1
Portd.6 = 1

Dim i As Byte

Do
Print "Befehl eingeben"
If Usr.rxc = 1 Then
I = Udr
Select Case i

Case "01"
Portb.0 = 0
Case "02"
Portb.0 = 1

Case "03"
Portb.1 = 0
Case "04"
Portb.1 = 1

Case "05"
Portb.2 = 0
Case "06"
Portb.2 = 1

Case "07"
Portb.3 = 0
Case "08"
Portb.3 = 1

Case "09"
Portb.4 = 0
Case "10"
Portb.4 = 1

Case "11"
Portd.2 = 0
Case "12"
Portd.2 = 1

Case "13"
Portd.3 = 0
Case "14"
Portd.3 = 1

Case "15"
Portd.4 = 0
Case "16"
Portd.4 = 1

Case "17"
Portd.5 = 0
Case "18"
Portd.5 = 1

Case "19"
Portd.6 = 0
Case "20"
Portd.6 = 1


Case Else
Print "Falsche Eingabe"
End Select
End If
Loop


End

der attiny ist über einen max232 mit dem Pc verbunden
aber alles was ich empfange sind tausende Nullen
ohne dass ich irgendwas gemacht hab

wäre nett wenn mir jemand helfen könnte bin leider nur ein Neuling in Bascom

Neutro
16.11.2008, 19:32
Hi GeckO,

willkommen im Roboternetz.
Aber zunächst eine Frage: was ist "Basecon" für eine Sprache? :-)
Dieses Wiki hier wird dir sicher weiter helfen : https://www.roboternetz.de/wissen/index.php/Windows_Programm_zum_Steuern_des_AVR%27s
Übrigens wird dein Programm so nie funktionieren, vergleiche die Programme mal miteinander dann müsste es klingeln.....

Mfg

Neutro

Geck0
17.11.2008, 19:03
Danke erstmal für den Link
nur leider funktionierts immer noch net
hab auch schon ein paar mal nachgeschaut ob ich alles richtig angeschlossen hab aber es passt alles



$regfile = "2313def.dat"
$framesize = 24
$swstack = 8
$hwstack = 32
$crystal = 12000000
$baud = 9600

Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinb.4 = Output

Portb.0 = 1
Portb.1 = 1
Portb.2 = 1
Portb.3 = 1
Portb.4 = 1
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
Portd.5 = 1
Portd.6 = 1

Dim A As Byte

Do
A = Inkey()
If A > 0 Then
Select Case A
Case 49
Portb.0 = 0
Print "Portb.0 wurde ausgeschaltet!" '1
Case 50
Portb.0 = 1
Print "Portb.0 wurde eingeschaltet!" '2

Case 51
Portb.1 = 0
Print "Portb.1 wurde ausgeschaltet!" '3
Case 52
Portb.1 = 1
Print "Portb.1 wurde eingeschaltet!" '4

Case 53
Portb.2 = 0
Print "Portb.2 wurde ausgeschaltet!" '5
Case 54
Portb.2 = 1
Print "Portb.2 wurde ausgeschaltet!" '6

Case 55
Portb.3 = 0
Print "Portb.3 wurde ausgeschaltet!" '7
Case 56
Portb.3 = 1
Print "Portb.3 wurde ausgeschaltet!" '8

Case 57
Portb.4 = 0
Print "Portb.4 wurde ausgeschaltet!" '9
Case 79
Portb.4 = 1
Print "Portb.4 wurde ausgeschaltet!" 'O <-- Buchstabe Ohh

Case 97
Portd.2 = 0
Print "Portd.2 wurde ausgeschaltet!" 'a
Case 98
Portd.2 = 1
Print "Portd.2 wurde ausgeschaltet!" 'b

Case 99
Portd.3 = 0
Print "Portd.3 wurde ausgeschaltet!" 'c
Case 100
Portd.3 = 1
Print "Portd.3 wurde ausgeschaltet!" 'd

Case 101
Portd.4 = 0
Print "Portd.4 wurde ausgeschaltet!" 'e
Case 102
Portd.4 = 1
Print "Portd.4 wurde ausgeschaltet!" 'f

Case 103
Portd.5 = 0
Print "Portd.5 wurde ausgeschaltet!" 'g
Case 104
Portd.5 = 1
Print "Portd.5 wurde ausgeschaltet!" 'h

Case 105
Portd.6 = 0
Print "Portd.6 wurde ausgeschaltet!" 'i
Case 106
Portd.6 = 1
Print "Portd.6 wurde ausgeschaltet!" 'j

Case 114
Print "Reset..."
Goto 0
End Select
End If
Loop



End

ich empfange keine Daten vom Attiny weder mit einem porgramm von SharpDevelop noch ganz normal via Hyperterminal (bzw hier putty Hterm wegen Vista)

Neutro
17.11.2008, 19:43
An deinem Programm scheint es nicht zu liegen, mir fällt da jedenfalls kein
Fehler auf.
Was empfängst du denn über das Terminal, bzw über Sharp?
Hier noch ein paar Sachen die du kontrollieren solltest:
Hast du den richtigen Com port am PC angeschlossen?
Wie ist die Baudrate im Terminal / Sharp eingestellt?
Wenn du in der Systemsteuerung auf den Comport gehst, ist dieser aktiviert?, wie ist hier die Baudrate ?
Hast du die Fusebits auf einen Externen 12MHz Quarz eingestellt?
Zu guter letzt: RXD und TXD mal vertauschen, ist GND vom Controller mit
GND Com port verbunden?
Vielleicht liegt der Fehler ja irgendwo da....
Wenn es denn immer noch nicht funktionieren sollte, bitte mal einen
Schaltplan von deinem Aufbau einfügen. Viel Erfolg

Neutro

Geck0
17.11.2008, 20:18
verdrahtung hab ich überprüft die passt
hier ist auch mal schalplan
hab jetz nich viel dran
sondern nur an PB0 und PB1 ne Led
am sharp programm kanns auch nicht liegen
wenn ich tx und rx am com port verbinde empfange ich dass was ich gesendet habe
wenn ich den attiny anschließe bekomm ich nix empfangen
wie stell ich die fusebits ein?
und woher weiß ich welche des sind?

http://www.abload.de/img/platineodo8.png (http://www.abload.de/image.php?img=platineodo8.png)[/img]

repi64
17.11.2008, 22:04
Hi,

wenn du schauen möchtest ob der µC mit dem richtigen Takt läuft,
mach mal eine kleine Blinkschleife bei der die LED z.B, alle 10 sec. an und wieder aus geht.
Weicht die Wartezeit deutlich ab, so läuft der µC womöglich noch auf dem internen Takt -> Fusebits richtig setzen.

Neutro
18.11.2008, 19:54
Schau dir das mal an:
https://www.roboternetz.de/wissen/index.php/Bascom_-_Erstes_Programm_in_den_AVR_Controller_%C3%BCbertr agen

Ein bisschen rumstöbern im Wiki beantwortet schon viele Fragen....

MfG

Neutro

Red
18.11.2008, 19:54
Hi
Ich habe zwar noch nicht mit einem Attiny gearbeitet.
Aber wenn ich das grad auf die schnelle richtig gesehen habe muss die Uart wie bei den Atmega erst aktiviert werden.
Entweder mal das UART Control Register im Datenblatt anschauen oder den Befehl 'Open "com1"...' in der Hilfe von Bascom über F1.

Vielleicht hilft das.

MfG
Red

Neutro
18.11.2008, 20:01
Vielleicht hilft dir bei der Fehlersuche noch das Programm am Ende
des Artikels (der im übrigen sehr gut erklärt ist) weiter
https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht