> Satte in lite checkar för overrun och frame error...
Jo, det kan ju vara bra, men notera att du *aldrig* ska få overrun eller
frame error. Om du får det så har du ett stort fel i designen...
Bluetooth modulen bekräftar inte mina AT kommandon
LÖST!
...kollade programminnet och fann att "data "AT+BTK=\"0000\"", 0x0D, 0" gav 0x0D ett eget word och satte istället in det som \r i strängen...men om man skulle vlija ha väldigt udda eller numeriska värden att följa med hur gör man då? jag använder 18f table funktioner för att läsa mina strängar...
Har stött på ett nytt problem. Nu vill inte pairingen fungera. Vad jag gör är att jag sätter modulen till att acceptera inkommande efter "1 ring" och är synlig. Kollar att dessa ger mig "OK" i respons. Sedan väntar jag tills jag får inkommande vilket jag får, alltså ett "PIN? XXXXXXXXXX" meddelande...där XXX... är adressen på den enhet som skickar begäran (min mobil), efter jag knappat in pin koden på mobilen såklart. När jag får detta meddelande skickar jag "AT+BTK="0000"" till modulen ända tills jag får ett "OK" av modulen, alltså att mobilen gick med på allt. Men Icke...får ej "OK" meddelandet. Så här ser koden ut:
PROG_VAR_BT_PIN är alltså en sträng med kommandot för att skicka en pin kod som svar. BT_HandleResponse kollar om det jag får som svar är "OK"...får jag det så fortsätter koden. BT_RESPONSE_OK är bara en flagga som returneras från funktionen.
...kollade programminnet och fann att "data "AT+BTK=\"0000\"", 0x0D, 0" gav 0x0D ett eget word och satte istället in det som \r i strängen...men om man skulle vlija ha väldigt udda eller numeriska värden att följa med hur gör man då? jag använder 18f table funktioner för att läsa mina strängar...
Har stött på ett nytt problem. Nu vill inte pairingen fungera. Vad jag gör är att jag sätter modulen till att acceptera inkommande efter "1 ring" och är synlig. Kollar att dessa ger mig "OK" i respons. Sedan väntar jag tills jag får inkommande vilket jag får, alltså ett "PIN? XXXXXXXXXX" meddelande...där XXX... är adressen på den enhet som skickar begäran (min mobil), efter jag knappat in pin koden på mobilen såklart. När jag får detta meddelande skickar jag "AT+BTK="0000"" till modulen ända tills jag får ett "OK" av modulen, alltså att mobilen gick med på allt. Men Icke...får ej "OK" meddelandet. Så här ser koden ut:
Kod: Markera allt
PROG_VAR_BT_PIN
data "AT+BTK=\"0000\"", 0x0D, 0
;...senare i koden
SendPINCommand
BT_SendCommand(PROG_VAR_BT_PIN)
BT_HandleResponse(PROG_VAR_BT_OK)
btfss BTResponse, BT_RESPONSE_OK
bra SendPINCommand
;...fortsätter här
Du skrev tidigare att du använder assembler. Stämmer det ? MPASM ?
> och fann att "data "AT+BTK=\"0000\"", 0x0D, 0" gav 0x0D ett eget word
Ja, och det stämmer överens med dokumentation.
> men om man skulle vlija ha väldigt udda eller numeriska värden att följa med hur gör man då?
MPASM manualen kapitel 3.2.1 sidan 40. T,ex "abc\xDEdef" sätter in
värdet h'DF' mellan "abc" och "def".
> data "AT+BTK=\"0000\"", 0x0D, 0
Är samma sak som :
data "AT+BTK=\"0000\"\r0", och så slipper du få CR i nästa program-word.
> BT_SendCommand(PROG_VAR_BT_PIN)
> BT_HandleResponse(PROG_VAR_BT_OK)
Jag känner inte riktigt igen detta som MPASM syntax...
> och fann att "data "AT+BTK=\"0000\"", 0x0D, 0" gav 0x0D ett eget word
Ja, och det stämmer överens med dokumentation.
> men om man skulle vlija ha väldigt udda eller numeriska värden att följa med hur gör man då?
MPASM manualen kapitel 3.2.1 sidan 40. T,ex "abc\xDEdef" sätter in
värdet h'DF' mellan "abc" och "def".
> data "AT+BTK=\"0000\"", 0x0D, 0
Är samma sak som :
data "AT+BTK=\"0000\"\r0", och så slipper du få CR i nästa program-word.
> BT_SendCommand(PROG_VAR_BT_PIN)
> BT_HandleResponse(PROG_VAR_BT_OK)
Jag känner inte riktigt igen detta som MPASM syntax...