Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Sre Avg 25, 2010 10:12 pm Naslov sporočila: UART problem |
|
|
pozdravljeni!
imam problem z uart in sicer, imam mega16 ki je na razvojni plošči asy avr 5 in pa mega 8 ki je na protoboard. z mego16 sprejemam z mego8 oddajam, povezava med njima je da je Tx iz mege8 povezan na Rx mega16, frekvenca kristala je pri obeh 12 MHz. ko imam vsakega posameznega na plošči in sem povezan z terminalom, na PC deluje tako sprejemanje kot oddajanje, ko pa mikrokontrolerja povežem med sabo pa ne deluje. kaj bi lahko bil problem?
tukaj prilagam programa:
pošiljanje:
Koda: |
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 4800
$hwstack = 32
$swstack = 8
$framesize = 24
Dim A As Byte
Config Portb = Input
Do
If Pinb.0 = 1 Then
Print Bin(a)
Wait 1
End If
Loop
|
sprejemanje:
Koda: |
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 4800
$hwstack = 32
$swstack = 8
$framesize = 24
Dim A As Byte
Config Portb = Output
Do
A = Inkey()
If A > 0 Then
Portb = &B11111111
Else
Portb = &B00000000
End If
Wait 1
Loop |
|
|
Nazaj na vrh |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2104 Aktiv.: 8.88 Kraj: Ljubljana
|
Objavljeno: Sre Avg 25, 2010 10:24 pm Naslov sporočila: |
|
|
Si povezal tudi mase? |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Sre Avg 25, 2010 10:30 pm Naslov sporočila: UART problem |
|
|
sem |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.67 Kraj: KOPER
|
Objavljeno: Sre Avg 25, 2010 10:30 pm Naslov sporočila: |
|
|
V oddajnem delu nisi spremenljivki A dodelil vrednost, zato ti sprejemnik ne pokaže nič, ker vrednosti "0" ne obravnava.
Koda: |
If A > 0 Then naredi
|
v oddajniku dodeli neko vrednost spremenljivki A, pa bo delalo. _________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Sre Avg 25, 2010 10:42 pm Naslov sporočila: UART problem |
|
|
ne razumem najbolj... jaz bi rad da ko bi sklenil tipko na oddajnem bi se vklopile ledice na sprejemnem mc. lahko prosim spremeniš kodo ? |
|
Nazaj na vrh |
|
 |
nakamichi Član

Pridružen-a: Pon 21 Avg 2006 18:51 Prispevkov: 845 Aktiv.: 3.69 Kraj: Nova Gorica
|
Objavljeno: Sre Avg 25, 2010 10:59 pm Naslov sporočila: |
|
|
Sicer ne vem kaj za en jezik je to ampak ti imaš nekakšno funkcijo Print Bin(a), ki sklepam, da preko UARTA pošlje a. Ampak ti nikjer ne definiraš a in on ga jemlje kot 0. Nekje prej določi a=1 recimo.
L.P.,
Miha |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.67 Kraj: KOPER
|
Objavljeno: Čet Avg 26, 2010 7:22 am Naslov sporočila: |
|
|
Tako bo bolje:
Koda: |
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 4800
$hwstack = 32
$swstack = 8
$framesize = 24
Dim A As Byte
Config Portb = Input
a = 1
Do
If Pinb.0 = 1 Then
Print Bin(a)
Wait 1
End If
Loop |
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Čet Avg 26, 2010 9:30 am Naslov sporočila: UART problem |
|
|
sem probal in ne dela, nevem zakaj, nevem če imam kaj narobe povezano.. bi lahko prosim gdo poskusil in mi javil če dela? potem vsaj vem da sem nekaj narobe povezal.. |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.33 Kraj: Maribor (Pohorje)
|
Objavljeno: Čet Avg 26, 2010 9:42 am Naslov sporočila: |
|
|
Ukaz Inkey() prebere "čakajočo" vrednost v serijskem bufferju, katerega pa nimaš definiranega.
Probaj tako:
Koda: |
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 4800
Config Serialin = Buffered , Size = 20
$hwstack = 32
$swstack = 8
$framesize = 24
Dim A As Byte
Config Portb = Output
Do
A = Inkey()
If A > 0 Then
Portb = &B11111111
Clear Serialin
Else
Portb = &B00000000
End If
Wait 1
Loop |
|
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Čet Avg 26, 2010 10:27 am Naslov sporočila: UART problem |
|
|
sem probal, vendar se ne vklopijo niti ledice ko iz terminala pošiljam.. |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.33 Kraj: Maribor (Pohorje)
|
Objavljeno: Čet Avg 26, 2010 10:36 am Naslov sporočila: |
|
|
Kaj pa:
Koda: |
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 4800
$hwstack = 32
$swstack = 8
$framesize = 24
Dim A As Byte
Config Portb = Output
Do
A = Waitkey()
If A > 0 Then
Portb = 255 'To ne vpliva na porogram, je le krajsa, decimalna oblika binarnega zapisa
Else
Portb = 0
End If
Wait 1
Loop |
|
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Čet Avg 26, 2010 10:48 am Naslov sporočila: UART problem |
|
|
tako dela ja, samo se ledice ne ugasnejo.... |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.67 Kraj: KOPER
|
Objavljeno: Čet Avg 26, 2010 11:06 am Naslov sporočila: |
|
|
Zbriši tisti wait 1. _________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.67 Kraj: KOPER
|
Objavljeno: Čet Avg 26, 2010 11:13 am Naslov sporočila: |
|
|
probaj tako:
Koda: |
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 4800
$hwstack = 32
$swstack = 8
$framesize = 24
Dim A As Byte
Config Portb = Output
Do
A = Waitkey()
If A = 1 Then Portb = 255
If A = 2 Then Portb = 0
Loop |
Na oddajniku pa izmenično pošiljaj 1 ali 2. _________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
linel Član


Pridružen-a: Čet 06 Mar 2008 21:14 Prispevkov: 178 Aktiv.: 0.85 Kraj: prekmurje
|
Objavljeno: Čet Avg 26, 2010 11:15 am Naslov sporočila: UART problem |
|
|
na ugasnejo, kako bi pa poslal vrednost manjšo od nič? oz. da bi tam vpisal večjo vrednost pri kateri naj vklopi. v katerem načinu to pošilja oz sprejema? ( hex, bin..) ? |
|
Nazaj na vrh |
|
 |
|