DEBUGIN i PicBasic pro
DEBUGIN i PicBasic pro
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.
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.
- JimmyAndersson
- Inlägg: 26578
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
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.
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.

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
Jag hittade tillslut ett exempel som fungerade att kompilera och det ser ut såhär:
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?
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
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
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.
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.
> 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 !!
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 !!
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...
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...
Angående språkval...
På ett PIC forum (Picklist) ställdes för något år sedan följande fråga :
På ett PIC forum (Picklist) ställdes för något år sedan följande fråga :
Med (bl.a) följande svar :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
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.
