$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 2
$swstack = 5
$framesize = 20
'Codeabfrage über Wählscheibentelefon
'Ein und Ausgänge konfigurieren
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinb.4 = Output
'Alias Namen zuweisen
Falsch Alias Portb.2 'rufzeichen "kein Anschluss unter dieser Nummer"
Nsi Alias Pinb.1 'Impulsleitung vom Nummernschalter
Nsa Alias Pinb.0 'Nummernschalterkontakt, für Wählscheibe dreht oder steht
Ansage Alias Portb.3 'Ansage der Informationen
Bereit Alias Portb.4 'Wählbereitschaft anzeigen
'Interne pullups zuschalten
Portb.0 = 1
Portb.1 = 1
'Variablen zuweisen
Dim A As Byte
Dim Temp As Byte 'Anzahl der Impulse pro Wahlvorgang
Dim Nummer As String * 10 'Der String in dem die gewählte Nummer geschrieben wird
' !!genau so gross wie der String "Rufnummer"!!
Dim Rufnummer As String * 10 'Der String in dem die zu wählende Nummer festgelegt wird
'die max länge ist hier auf 10 Nummern beschränkt
'Alle Variablen auf Null setzen
A = 0
Nummer = "" 'Sicherstellen, das String leer
'Alle Ausgänge auf 1 setzen
Falsch = 0
Ansage = 0
Bereit = 0
Config Debounce = 15
'Hauptprogrammschleife
Rufnummer = "7634528109" 'Hier die zu wählende Nummer eintragen
'Abfrage des Nummernschalters
Do
'Wählbereitschaft anzeige
Debounce Nsi , 1 , Impulse , Sub 'Impulsschalter entprellen und Sprunganweisung
Debounce Nsa , 1 , Auswerten , Sub 'Wählscheibe abgelaufen entprellen und Sprunganweisung
Loop
'Impulse hochzählen
Impulse:
Bereit = 1
Incr A
Waitms 80
Bereit = 0
Return
Auswerten:
Gosub Kontrollzeichen
A = 0
Return
Kontrollzeichen:
For Temp = 1 To A
Falsch = 1
Waitms 500
Falsch = 0
Waitms 500
Temp = Temp + 1
Next Temp
Wait 1
Return
End 'end program
rainmuel schrieb:Haaaalt, nochwas:
Kontrollzeichen:
For Temp = 1 To A
Falsch = 1
Waitms 500
Falsch = 0
Waitms 500
Temp = Temp + 1
Next Temp
Wait 1
Return
Hier ist etwas doppelt, das erklärt die zu wenigen Kontrollzeichen:
Die For-Anweisung zählt A schon von selbst hoch. Wenn du noch zusätzlich Temp mit Temp=Temp+1 hoch zählst, kommt es zu halb so vielen Blinken...
Das wird es mit allerhhöchster Wahrscheinlichkeit gewesen sein.
Schönen Happy-Cadaver
Das Problem besteht überhaupt nicht. Habe keine Probleme mit dem Code von Peter gehabt, bei mir war es damals die Wählscheibe, welche mich zur Verzweiflung gebracht hat. Sie gab die Impulse nicht sauber raus. Kontakte gesäubert und erledigt, allerdings ist hier Feingefühl notwendig.rainmuel schrieb:Spontan sehe ich das Problem hier:
Do
Debounce Nsi , 1 , Impulse , Sub
Debounce Nsa , 1 , Auswerten , Sub
Loop
probiere mal das hier statt dessen:
Do
Debounce Nsi , 1 , Impulse , Sub
gosub Auswerten
Loop
Grundsätzlich sind die arduinos ja 'nur' AtMega mit ein wenig weiterer Beschaltung rundum. Aber dann ist die Frage wie Du den bascom hex-code auf den Chip kriegen willst? Per SPI-Programmer den Bootloader zu überschreiben geht natürlich, aber dann brauchst Du auch wieder einen Programmer. Außerdem ist dann natürlich noch die Frage welcher AtMega nun auf Deinem Arduino ist - wenn der pin/funktionskompatibel zum AtMega8 ist sollte das grundsätzlich gehen, ansonsten mußt Du das Programm entsprechend auf die Gegebenheiten anpassen.englishfire schrieb:Hallo,
eine Frage: Kann ich den Code von peter51d irgendwie auf einen Arduino übertragen?
Ist das möglich?