DEBUGIN i PicBasic pro

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

DEBUGIN i PicBasic pro

Inlägg av Mutiaz »

Hej!

Jag får fel varje gång jag ska kompilera med kommandot DebugIn. Det står: Expected ']' och det kommer upp en ruta där det står "Compile timeout". Varför?

Någon som kan förklara hur DebugIn kommandot funkar med labels o grejer för jag hänger inte riktigt med i manualen.
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Jag har ingen erfarenhet av just PicBasic, men " Expected ']' " låter helt klart som att PicBasic berättar att du missat ett ] någonstans. Därför kan inte kompileringen gå vidare och du får ett "Compile timeout".

Expected = Förväntade

Ibland kan ett felmeddelande varna för att en sak saknas eller är fel, men det kan lika gärna vara något annat på någon tidigare rad som är galet. Då förstår inte PicBasic vad det är du vill göra.

Lägg gärna upp koden så kan vi kika. :)
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Koden är inte klar men såhär ser det ut just nu:

Kod: Markera allt

@ device INTRC_OSC_NOCLKOUT
DEFINE DEBUGIN_REG	PORTB
DEFINE DEBUGIN_BIT	0
DEFINE DEBUG_BAUD	2400
DEFINE DEBUGIN_MODE	1


DEFINE LCD_DREG  PORTA 
DEFINE LCD_DBIT  0 
DEFINE LCD_RSREG  PORTA 
DEFINE LCD_RSBIT  4 
DEFINE LCD_EREG  PORTB 
DEFINE LCD_EBIT  3 
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50


Pause 100

x VAR BYTE


Pause 500           	  'Wait for LCD to wake up 
LCDOut $FE, 1       	  'Initiate LCD by clearing display 
Pause 500 

loop:


DebugIn [WAIT("HEJ"),B0]

Pause 50


LCDOut $FE, 1, X

GoTo loop

End
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

DebugIn [WAIT("HEJ"),B0]?
eller ska det vara:
DebugIn [WAIT("HEJ"),$B0]?
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Det blir ingen skildnad med dollartecknet. Jag skulle gärna veta vad de olika items o labelsen gör..
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Jag hittade tillslut ett exempel som fungerade att kompilera och det ser ut såhär:

Kod: Markera allt

X VAR BYTE[3]

MAIN:
    DebugIn 6000,NoData,[WAIT("A"),STR X\3]
    Debug "Received:  ",STR X\3,13,10
    GoTo MAIN

NoData:
    Debug "Nada",13,10
    GoTo Main
    
    End
Kan någon förklara lite mer exakt vad denna kod gör? Jag skulle vilja göra koden så att den skriver ut det jag skriver i hyperterminalen på en LCD, nått tips?
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Har suttit o grejat ett tag nu och jag funderar på hur man skulle kunna göra detta, detta funkar inte men jag tror ni fattar hur jag vill att det ska funka:

Kod: Markera allt

X VAR BYTE[3]



MAIN:

    DebugIn 6000,SKRIVLCD,[WAIT("A"),STR X\3]
    
    GoTo MAIN
    
    

SKRIVLCD:

    
    IF X = 123 Then
    Pause 50
	LCDOut $FE, 1, "Montoya"
    
    EndIF
    End
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Näää....jag hoppar av.

När ett programmeringsspråk har BASIC med i namnet vet jag att det är skit och omöjligt att åstakomma något vettigt med.

Hade det varit C eller Pascal eller assembler eller annat vettigt kunne jag nog hjälpa men BASIC...... :-(

Sen fattar jag inte vad du egentligen vill uppnå. Om du vill veta att en rutin körs brukar jag ha en pinne med en LED (eller fler pinnar med var sin LED) och sedan slår jag på dom, av dom eller toggler dom (syns bra i oscilloskop) och det har jag debuggad MÅNGA projekt med.
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Haha! Jag tycker basic är bra mycket lättare än C o Pascal...

DebugIn är ett kommando som är ungefär som SerIn fast lättare.

Alltså jag vill skriva i hyperterminalen och skicka ut tecknen på LCDn som är kopplad till PICen.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Haha! Jag tycker basic är bra mycket lättare än C o Pascal...

Det beror väll på om man vill göra något riktigt eller bara leka.

> Alltså jag vill skriva i hyperterminalen och skicka ut tecknen på LCDn som är kopplad till PICen.

Alltså läsa från USART'en och skriva med en LCD rutin, alltså.

Så som DebugIn är implementerat (ligger och väntar på att det skall komma
något) så kan den ju inte användas till något "riktigt", kanske något
mindre testprogram som det här.

Sen, att skriva att "...detta funkar inte..." är ganska värdelöst.
Du måste beskriva bättre på vilket sätt det inte fungerar, Vad du
förväntade dig skulle hända. Vad som händer *istället.* Hur du
*vet* att det inte fungerar Vad du har gjort för debugåtgärder o.s.v.

I ditt exempel vill du alltså att om du *inte* skriver ett "A" inom 6
sekunder så skall LCD'n visa "Montoya". Vad händer istället då ?

Vad betyder "X = 123" ??
Kommentera programmet !!
Användarvisningsbild
tusse
Inlägg: 1364
Blev medlem: 19 augusti 2003, 21:56:17
Ort: Järfälla

Inlägg av tusse »

Vi försöker igen, programmet vet inte vad B0 är på grund av att du fått för många mellanslag i
DEFINE DEBUGIN_REG PORTB
DEFINE DEBUGIN_BIT 0

före PORTB och 0.

PicBasic är mer än en leksak, det förstår inte alla.
Senast redigerad av tusse 1 januari 2006, 17:23:04, redigerad totalt 3 gånger.
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Så man kan bara leka med PicBasic? Det betvivlar jag starkt..

Jag har kollat igenom manualen och bedömer att HSerin lär vara det jag söker. Ska prova detta och återkommer.

tack
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK.
Eftersom du hade tittat på kommandon för mjukvaru-USART så antog jag
att du hade en PIC *utan* hårdvaru-USART. Svårt att veta eftersom
du inte talar om vilken PIC du använder. :-)

Nja, Det är väll ingen "leksak", det sa jag inte heller.
Hur som helst, begränsningarna brukar uppenbara sig med tiden...
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Jag har 16F628A så de ska la gå bra?

Jag får väl gå över till "the dark side" när jag fått min uppenbarelse. :D
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Angående språkval...

På ett PIC forum (Picklist) ställdes för något år sedan följande fråga :
Hi there.

I have been using PICs since last June programming in assembler, I am now looking a using the C language.
What are the advantages/disadvantages of C over the assembly language.
Am I right in thinking that there are built in 'modules' for division, multiplication etc.
Are there any good online tutorials on programming in C for complete beginers?

Christopher
Med (bl.a) följande svar :
First you know nothing;
YOU ARE HAPPY

You then learn about the chip:
YOU LEARN AND USE ASSEMBLY

You then find out there is an easier way, so you can spare some time to watch TV:
YOU LEARN AND USE C

You then find out there is a simpler way, so you can spare all the time in TV, cars, girls, bars, traveling, yatch, relaxing, etc:
YOU HIRE SOMEBODY ELSE TO WRITE THE CODE.

You then find out your money is going fast, so you decided to do some work:
YOU LEARN AND USE JAL

You then find out your money is going real fast, you need to do all the work and save some code space:
YOU RETURN TO WRITE IN C.

You then find out it is not bad to dedicate time, by the way, writing code is a kind of hobby, so stop watching TV and leave girls alone:
YOU RETURN TO WRITE IN ASSEMBLY.

You then find out happines is all around:
YOU LEARN ABOUT AVRs

You then find out you were happy and didn't know.
YOU REMOVE WinXP AND REINSTALL WIN98SE.

You then find out life is a misery, and you want paradise right now.
YOU REMOVE Win98SE AND INSTALL DOS6.

Now, what was your question up there?
Wagner.
:-)
Skriv svar