HELP multi-processor-modus met behulp van communicatie ATTINY en VB6

M

maden

Guest
Hi guys ..
thx voor uw zorg ..

Ik heb een project met behulp van computer als een meester en 3 ATTINY2313 als slave ..
ze communiceren met multi-processor communicatie-modus (MPCM).Quote:De volgende procedure moet worden gebruikt om gegevens in ruil Multi-processor Gemeen -
kation-modus:
1.Alle Slave MCU's zijn in multi-processor Communicatie modus (MPCM in UCSRA
is ingesteld).
2.De Master MCU stuurt een adres frame, en alle slaven ontvangen en lezen deze
frame.In de Slave MCU's, zal de RXC vlag in UCSRA worden ingesteld als normaal.
3.Elke Slave MCU leest de UDR Register en bepaalt of het is
geselecteerd.Zo ja, wist het de MPCM beetje in UCSRA, anders wacht voor de volgende
adres byte en houdt de MPCM instelling.
4.De aangepakt MCU zal alle gegevens frames ontvangen totdat een nieuw adres frame is
ontvangen.De andere Slave MCU's, die nog steeds de MPCM bit ingesteld, zal negeren
gegevens frames.
5.Wanneer de laatste gegevens frame is ontvangen door de geadresseerde MCU, de geadresseerde
MCU stelt de MPCM beetje en wacht op een nieuw adres frame van meester.De
proces herhaalt dan van 2.
 
het bestand is slechts 4kb ...
vb code ..
Code:private Sub Form_Load ()

UartCom.CommPort = 1

UartCom.PortOpen = TrueEnd SubPrivate Function ComUart (addr, Command, data1, data2 As Byte) As String

Dim dummy

S As String Dim

'Stuur Adres

UartCom.InBufferCount = 0 'ini ga penjelasannya

UartCom.Settings Baudrate = ", M, 8,1"

UartCom.Output = Chr (addr)

dummy = DoEvents ()

'Send Data

UartCom.Settings Baudrate = ", S, 8,1"

'UartCom.Output = Chr (Command) Chr (data1) Chr (data2)

'nah ini uda mulai ngambil gegevens

UartCom.InputLen = 2

S = ""

On Error Resume Next

Doen

dummy = DoEvents ()

'Als er gegevens in de buffer, dan lezen.

Als UartCom.InBufferCount Dan

S = S UartCom.Input

Exit Do

End

Loop

Als Err Dan

MsgBox "COM" NoPort "port1: niet beschikbaar. Wijzig de CommPort pand naar een andere haven."

Exit Function

End

ComUart = S

End Function
 
Hoi,
Gelieve te verduidelijken het volgende:

1.Terwijl het verzenden van pc, kunt u omschakelen naar Space pariteit na het adres byte.Maar in uw slaaf programma dat u overschakelen naar Space pariteit alleen tijdens het reageren op PC.U mist de volgende bytes het adres als u dit doet.

2.Het is beter om een vertraging in de PC tussen de overschakeling van Mark tot de ruimte, om wat tijd voor de slaaf staat te stellen de modus te veranderen.

3.Ik neem aan dat u gebruik maakt van MAX 491 chip in vier-draads 485 modus.De chip vereist een laag niveau kan ontvangen, maar u lijkt te zijn waarin het als hoog niveau, tenzij je een omvormer in de weg hebben.

4.Je lijkt altijd in staat stellen TX bit, zal het werken met een slaaf, maar zal niet werken met meerdere slaven.Je moet dynamisch kunnen TX stellen voordat respose en normaal houden uitgeschakeld.

Groeten,
Laktronics

 
antwoord nomor 3:
Ik ben het testen van de MPCM wijze (n) uit slechts met behulp van een eenvoudige RS-232 tussen een ATTINY en een computer, zodat ik stil doesnt gebruik max. 491

antwoord nomor 4
als ik met MPCM ... en MPCM bit is vervolgens de slaaf cant communiceren niets (ik had testen ...)

antwoord nomor 2
goede suggestie ... Ik heb het proberen ... maar het probleem op te lossen isnt ...

en nomor 1
i dont begrijpen ... kunt u dit uitleggen voor mij ..
bedanktToegevoegd na 5 minuten:Zoals u kunt zien, ben ik nog steeds met onhandige krijg dit te gaan en zou alle hulp zeer op prijs stellen, suggesties en voorbeeld codes.Thanks in advance.

 
Hoi,

1.De punten 3 en 4 zijn alleen van toepassing als u met MAX 491.

2.Ten aanzien van punt 1, merk ik nu dat beetje D0 register UCSRA is infact wordt geklaard door u voor het lezen van de instructie bytes na ontvangst van het adres byte.Dus mijn commentaar is niet van toepassing.

3.U kunt nog steeds geeft een vertraging tussen het adres en instructie tijdens het verzenden, zodat de instrction bytes worden verzonden na de slaaf verandert de modus om de gegevens met Space pariteit accepteren.Maar het zal ook geen grote gevolgen als er voldoende tijd is voor de ontvangst van de 9e bit.

4.Meerdere apparaten werkt alleen met MAX 491 aangesloten.

Groeten,
Laktronics

 
Hoi,
Hier is het probleem in putchr ():

while ((UCSRA & DATA_REGISTER_EMPTY) == 0);
UDR = c;

UCSRA nul is hier en het zal voor onbepaalde tijd wachten.
Stel UCSRA tot 1.Het zal niet van invloed transmissie.Alternatief, geen gebruik maken van deze voorwaarde, net controleren DataReg leeg.

Groeten,
Laktronics

 

Welcome to EDABoard.com

Sponsor

Back
Top