Hoi,
Als eindwerk moet ik een stemsysteem maken waarvan ieder stemkastje is voorzien van een µcontroller. Men kan stemmen dmv drie knopjes. Ja, onthouden of nee.
Nu ben ik aan het softwarematige gedeelte aanbelandt. Ik wou 2 µcontrollers "attiny 2313" met elkaar laten communiceren. Ik wou beginnen met een heel simpel proggie geprogrammeerd in Bascom. Maar dit krijg ik al niet aan de praat.
Met dit programma zend ik:
Baud = 300
Do
Print "a"
Loop
End
En hiermee moet ik ontvangen:
Config Portb = Output
Baud = 300
Dim Aa As Single
Do
Input Aa
If Aa = "aCR" Then
Portb = 0
Else
Portb = 1
End If
Loop
End
Nu, dit werkt niet. Volgens mijn mentor zend de µc na elk karakter dat hij verzend een enter teken daarom die CR= Carriage Return. Maar dit werkt blijkbaar nog niet?
Gerwin
An amplifier is just a modulator for a power supply |Toffe Gebruiker
wat je nu probeert is aCR te ontvangen
CR zijn letters
CR is een teken die in de ASCII tabel staat met nummertje 13.
wat jij dus probeert te ontvangen is a teken 13
niet aCR
Kijk maar is in de help van BASCOM http://avrhelp.mcselec.com/index.htm (geeft nu tijdelijk een 403 forbidden error, hele site ligt er uit)
Probeer maar eens:
If Aa = "a{013}" Then
Waarschijnlijk dat het dan wel werkt 
Dat komt omdat de "CR" 1 karakter is de waarde 13 Decimaal of 0x0d Hex. Je controleert nu of je een "C" en een "R" binnenkrijgt. Bovendien krijg je meerdere karakters binnen (je "a" en je CR), volgens mij kun je dat niet kwijt in een "Single", als laatste door de eerste processor te laten loopen "spuug" jij je karakters sneller uit dan dat de andere kant ze binnenhaalt. Waarom niet gewoon kijken of er een "A" binnenkomt ? : IF Aa = "a" then..
Ik ken je BASIC niet maar vaak bestaat er ook een "Putchar" achtig commando. Die verstuurt maar 1 karakter en plakt er geen CR achter.
Groeten, Bram
klein is fijn
Moderator
Laat die CR gewoon eens weg, en verander het bovenste in
Print "a" ;
You can use a semicolon ; to print more than one variable at one line.
When you end a line with a semicolon, no linefeed and carriage return will be added.
Staat allemaal in de help van Bascom.
/edit, schiet opeens weer te binnen waarom ik eerder met dit probleem heb lopen rommelen.. 
Het input commando wordt juist getriggerd door die Return. Je wil 'm juist WEL hebben. Maar je krijgt 'm NIET in de string die Input teruggeeft.
Bovendien zou ik een wachttijd in dat zendprogramma stoppen, die gooit er nu veel meer uit dan dat de ontvanger kan ontvangen.
Bovendien gaat er hier iets gruwlijk fout: Dim Aa As Single
Ja inderdaad die single moet een string zijn zeker, dat van die {013} zal ik straks ofzo eens proberen.
Heb je de clock/8 fuse bit uitgezet? en als je een externe crystal gebruikt heb je de fusebit hievoor ook gezet?
Op 30 december 2008 14:26:57 schreef bprosman:
Ik ken je BASIC niet maar vaak bestaat er ook een "Putchar" achtig commando. Die verstuurt maar 1 karakter en plakt er geen CR achter.Groeten, Bram
Print "a" ; Chr(13)
Heb je die eerste 2313 al eens aan bijvoorbeeld Hyperterminal gehangen om te kijken wat ie ueberhaupt verstuurd ?
Groeten, Bram