PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : code über infrarot



alper
07.05.2007, 21:09
hallo jungs,
ich versuche über meinen atmega32 via infrarot daten an die serielle schnittstelle zu senden.empfänger ist der tsop1736.mit dem serout befehl
funktionierts!

linux_80
07.05.2007, 22:06
Hallo,

schau mal beim ASURO, da wird das auch so gemacht.
Plan kann man sich bei Arexx runterladen, wie das dann programmiert wird (Timer), ist in den Beispielen zu sehen,
Bei Bascom kann man die Daten dann einfach mit Print übertragen.

alper
08.05.2007, 12:39
ich will meinen eigenen code benutzen und keine fertigen

alper
08.05.2007, 13:01
wenn ich mit 1200 baud übertrage bedeutet das doch, dass ein bit 833mikrosekunden lang ist oder ?

PicNick
08.05.2007, 15:10
For Bitnummer = 7 To 0 Step -1 'mein zeichen
If zeichen.bitnummer = 0 Then Bit0 Else Bit1
Next

Die Zeit, die der µC für die Schleifenbefehle braucht, mußt du aber schon bei den 833 µS mitrechnen.

Ein timer im Baudraten-Bit-Takt wäre da schon sehr hilfreich.

robby-fant
08.05.2007, 17:49
When the loop is set to 1, the minimum delay is 21 uS. In this case you can better use a NOP that generates 1 clock cycle delay.
At 4 MHz the minimum delay is 5 uS. So a waitus 3 will also generate 5 uS delay.
Above these values the delay will become accurate.....


daran liegt es > waitus 833 sind keine 833 sondern mehr.

eine routine für 8mhz :

Sub Wait_us_833()
$asm
ldi R17, $0A
Wgloop1:
ldi R18, $DD
Wgloop2:
dec R18
brne WGLOOP2
dec R17
brne WGLOOP1
ldi R17, $01
Wgloop3:
dec R17
brne WGLOOP3
Nop
$end Asm
End Sub