Archiv verlassen und diese Seite im Standarddesign anzeigen : Erste Programme/Schritte in Bascom
Roboter n00b
03.04.2005, 22:21
Hi@all
Ich hab mir nun, nachdem ich meinen ersten Bot noch mit CC gebaut habe, einen AVR Mega32 (RN-Control) gekauft. Ich will nun Bascom lernen, und bin ehrlich gesagt gerade etwas überwältigt :0. Nunja, also bei der CC Entwicklungssoftware schien mir alles etwas logischer und einfacher. Ist das in der Tat so, oder bilde ich mir das bloss ein? Ich hab jetzt gerade mal das Prggi von Frank für Motorprüfung und Batterieprüfung angeschaut, es Funktioniert zwar, aber ich hab keine ahnung wies funktioiert. -.-
Also beim CC hat jedes Proggi mit "define x port[y]" angefangen. Wie ist das jetzt bei Bascom? Der Befehl define gibts irgendwie nicht mehr, durch was wurde er ersetzt? Naja, ich hätte natürlich noch viele Fragen, aber ich denke mal, ich werde es jetzt mal gleich versuchen wie ich das auch beim CC gemacht habe, mit der programmierung eines Lauflichts. Könnt ihr mir erklären, wie das geht, damit ich die befehle auch nachvollziehen kann? Wäre echt super
vielen Dank und gruss
Serge
Roboter n00b
04.04.2005, 15:42
Hi nochma^^
Ich hab jetzt einen anderen Thread gefunden, in dem das thema schon behandelt wurde. Sorry oO
gruss Serge
//Edit
Ok, ich hab jetzt mal ein programm mit tastern und Lauflichtern geschrieben, nach der anleintung von RN-Control Test von Frank. nun, eigentlich hab ich glaub alles richtig gesagt, nur beim Compillieren, motzt er:
Error:124 Line:0 ; Loop expected, in File: -.-
nun, er braucht also noch ein Loop aber wo?
hier noch mein code:
Declare Sub Lauflicht1()
Declare Sub Lauflicht2()
Declare Sub Lauflicht3()
Declare Sub Lauflicht4()
Declare Function Tastenabfrage() As Byte
Dim Taste As Byte
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Adc = Single , Prescaler = Auto
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Lauflicht1
Case 2
Call Lauflicht2
Case 3
Call Lauflicht3
Case 3
Call Lauflicht4
End Select
End If
End
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Start Adc
Ws = Getadc(7)
If Ws < 1010 Then
Select Case Ws
Case 410 To 450
Tastenabfrage = 1
Case 340 To 380
Tastenabfrage = 2
Case 265 To 305
Tastenabfrage = 3
Case 180 To 220
Tastenabfrage = 4
End Select
End If
End Function
Sub Lauflicht1()
Config Portc = Output
Do
Porta.0 = 1
Wait 1
Porta.0 = 0
Wait 1
Porta.0 = 1
Wait 1
Porta.0 = 0
Wait 1
End Sub
Sub Lauflicht2()
Config Portc = Output
Do
Portc.0 = 1
Wait 1
Portc.1 = 1
Wait 1
Portc.2 = 1
Wait 1
Portc.3 = 1
Portc.0 = 1
Wait 1
Portc.1 = 1
Wait 1
Portc.2 = 1
Wait 1
Portc.3 = 1
End Sub
Sub Lauflicht3()
Config Portc = Output
Portc.0 = 1
Wait 1
Portc.0 = 0
Wait 1
Portc.1 = 1
Wait 1
Portc.1 = 0
Wait 1
Portc.2 = 1
Wait 1
Portc.2 = 0
Wait 1
Portc.3 = 1
Wait 1
Portc.3 = 0
End Sub
Sub Lauflicht4()
Config Portc = Output
Portc.0 = 1
Wait 1
Portc.0 = 0
Portc.1 = 1
Wait 1
Portc.1 = 0
Portc.2 = 1
Wait 1
Portc.2 = 0
Portc.3 = 1
Wait 1
Portc.3 = 0
Portc.4 = 1
Wait 1
Portc.4 = 0
End Sub
noch ne kurze frage: wird das Programm bei einem Compilierfehler nicht übertragen?
mfg Serge
hi,
du hast in deiner sub 'lauflicht1' und 'lauflicht2' jeweils ein "do" ohne dazugehöriges "loop" (müsste dann vor 'end sub' stehen).
grüssens, harry
Roboter n00b
04.04.2005, 19:51
Hi Harry
Danke für den Hinweis, es funktioniert nun. Nun ist das eine Problem gelöst, folgt das nächste... -.-
Und zwar hab ich probleme bei der übertragung ds Programms. Ich habe die optionen so eingestellt wie hier: https://www.roboternetz.de/wiki/pmwiki.php?n=Main.Avrbascom
Als Chip hab ich "M32" ausgewählt. Nun Compilliere ich also. Nun drücke ich oben in der Leiste auf dieses Grüne ding, um in den Programmiermodus zu gelangen.
Doch nun kommt folgende Fehlermeldung:
http://mitglied.lycos.de/sergewaechter/fehler.jpg
ich drück ok, dann kommt folgendes
http://mitglied.lycos.de/sergewaechter/fehler2.jpg
kann ich mir nicht erklären, da ich ja dei "Chip" "m32" eingestellt habe
ich drück nochmal ok, dann komm ich hierhin:
http://mitglied.lycos.de/sergewaechter/fehler3.jpg
Übertragen lässt sich das Programm aber nicht
Was auch komisch ist, dass jedes mal, wenn ich das Prog neu starte, bei der Option "Programmer" automatisch auf "Serial" umgestellt ist, obwohl ich "Parallel" (Druckerport) brauche.
Also ISP hab ich richtig angeschlossen, alle lämpchen sind aus, und Netzgerät ist auch drann.
Wäre für jeden Hilfeversuch dankbar O:)
gruss Serge
Alter Knacker
04.04.2005, 20:09
rechts oben steht bei chip aber nicht der 32er ;-)
mfg knacki
/edit:kannst ja auch avr-auto einstellen, genügt auch....
unter options-> chip kannst du nochmal einstellen welchen avr du benutzt. eigentlich sollte der $regfile behehl die einstellungen dort außer kraft setzten aber sicher ist sicher...
Roboter n00b
04.04.2005, 20:42
Naja, rechts oben stell ich normalerweise auch au m32 um, geht trotzdem nicht. Und in den Options hab ich auch schon (wie oben geschrieben) auf "m32" umgestellt :(
Roboter n00b
04.04.2005, 21:27
Ah, ich hab das Problem nun entdeckt. Ich hab das teil an ein 5m langes Druckerverlängerungskabel angeschlossen, war wol zu lang^^
So, ich hab nun das Programm übertragen, funzt aber nicht richtig. Weiss nicht wo der fehler ist, ich hab nach der Vorlage von Frank gearbeitet. Alsoh RNControl reagiert nicht auf die Taster
Hier mal der Code, ich hoffe jemand kann das kurz durchgehen^^
Declare Sub Lauflicht1()
Declare Sub Lauflicht2()
Declare Sub Lauflicht3()
Declare Sub Lauflicht4()
Declare Function Tastenabfrage() As Byte
Dim Taste As Byte
Dim Ton As Integer
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Config Adc = Single , Prescaler = Auto
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Lauflicht1
Case 2
Call Lauflicht2
Case 3
Call Lauflicht3
Case 3
Call Lauflicht4
End Select
End If
End
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Start Adc
Ws = Getadc(7)
If Ws < 1010 Then
Select Case Ws
Case 410 To 450
Tastenabfrage = 1
Case 340 To 380
Tastenabfrage = 2
Case 265 To 305
Tastenabfrage = 3
Case 180 To 220
Tastenabfrage = 4
End Select
End If
End Function
Sub Lauflicht1()
Config Portc = Output
Do
Porta.0 = 1
Wait 1
Porta.0 = 0
Wait 1
Porta.0 = 1
Wait 1
Porta.0 = 0
Wait 1
Loop
End Sub
Sub Lauflicht2()
Config Portc = Output
Do
Portc.0 = 1
Wait 1
Portc.1 = 1
Wait 1
Portc.2 = 1
Wait 1
Portc.3 = 1
Portc.0 = 1
Wait 1
Portc.1 = 1
Wait 1
Portc.2 = 1
Wait 1
Portc.3 = 1
Loop
End Sub
Sub Lauflicht3()
Do
Config Portc = Output
Portc.0 = 1
Wait 1
Portc.0 = 0
Wait 1
Portc.1 = 1
Wait 1
Portc.1 = 0
Wait 1
Portc.2 = 1
Wait 1
Portc.2 = 0
Wait 1
Portc.3 = 1
Wait 1
Portc.3 = 0
Loop
End Sub
Sub Lauflicht4()
Do
Config Portc = Output
Portc.0 = 1
Wait 1
Portc.0 = 0
Portc.1 = 1
Wait 1
Portc.1 = 0
Portc.2 = 1
Wait 1
Portc.2 = 0
Portc.3 = 1
Wait 1
Portc.3 = 0
Portc.4 = 1
Wait 1
Portc.4 = 0
Loop
End Sub
gruss Serge
Ah, ich hab das Problem nun entdeckt. Ich hab das teil an ein 5m langes Druckerverlängerungskabel angeschlossen, war wol zu lang^^gruss Serge
Moin,
sorry für das OT, aber wie kommt man eigentlich auf solch eine Idee, einen Progger an einem 5 Meter Kabel betreiben zu wollen?
Das soll auf keinen Fall anmaßend sein, ich analysiere nur, weil ich selbst ein ganz kleines bisschen Hardware anbiete und auf alles gefasst sein möchte und vieles im Vorfeld ausschließen möchte - darum die Frage.
Viele Grüße,
Bruno
Roboter n00b
04.04.2005, 22:46
Hi
Nun, ich hab mir nicht gedacht: Komm jetzt häng doch den RNC mal an ein 5 meter kabel, sondern es wäre einfach praktisch gewesen.
Ich hatte früher mal 2 PCs an einem Drucker, deshalb hat ich noch nen Switch. Das sah so aus:
PC1----Verlängerungskabel----Kabel----Swich----Kabel----PC2
da PC2 nun nicht mehr da ist, hatte ich einen Port am swich frei, und ich da es Praktischer ist, einfach zu switchen, statt immer umzustecken, hab ich ihn da rein gemacht.
gruss
Roboter n00b
05.04.2005, 20:45
naja, ich will ha nicht stürmen, aber kann mir niemand den/die Fehler im obigen programm kurz nennen? Würde mir echt was bringen^^
gruss und Danke
Serge
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.