PIC a robotické potvůrky

Zdravím,
dostaly se mi do rukou knihy z thinkbotics.com, ve kterých jsou návody na stavbu jednoduchých robotických potvůrek.
Mechanické a elektrické stavby nedělaly obtíže, podivnosti nastaly až v závěrečné fázi.
Autor programoval v PicBasicu Pro, kompiloval v Basic Pro Compileru a použil programátor EPIC Programmer.
Moje sestava programátor Velleman K8048 s dodaným kompilátorem MPASWIN, programem Progpic2 a micro code studio plus.

Pokud programy PBP vložím do microcode studia a kompiluji MPASWINem, jsou výsledné HEX kody jiné, než uvádí autor, přesto všechny programy fungují a potvůrky vykonávají požadované činnosti.
Na čem tedy závisí výsledný HEX kód? Lze použít pro jakýkoliv programátor HEX stažený z internetu nebo uvedený v knize?

Druhý problém
V PBC programu pro nyní stavěnou dvounožku je řádek
@ DEVICE PIC16F819, INTRC_OSC_NOCLKOUT, WDT_OFF, LVP_OFF, PWRT_ON, PROTECT_OFF, BOD_OFF
Tento se MPASWINu pochopitelně nelíbí a ječí, že chce něco jiného.
Použitý PIC16F819 má volné piny OSC a používá jen vnitřní oscilátor.
Asi by to chtělo zadat přímo instrukce, kterým by rozuměl.Ale jak?

Třeba je vám PBC k smíchu, ale pro odchovance SPECTRA je snadný.

Dík za rady

S prvním problémem ti asi neporadím, ale s druhým možná jo.

MPASWIN používá MPLAB a tam používám tohle.

list p=16F819
include “p16F819.inc”

__config _INTRC_OSC & _NOCLKOUT & _WDT_OFF & _LVP_OFF & _PWRT_ON & _PROTECT_OFF & _BOD_OFF

Upravil jsem to pro tvůj procesor. Snad ti to pomůže.

Dík za radu,
jestli jsem správně pochopil postup, tak při kompilaci z microcode studia je nejprve zavolán PicBasicPro, zde soubor 16F819.inc

;****************************************************************
;* 16F819.INC *
;* *
;* By : Leonard Zerman, Jeff Schmoyer *
;* Notice : Copyright © 2004 microEngineering Labs, Inc. *
;* All Rights Reserved *
;* Date : 01/07/04 *
;* Version : 2.45 *
;* Notes : *
;****************************************************************
NOLIST
ifdef PM_USED
LIST
include ‘M16F81x.INC’ ; PM header
device pic16F819, hs_osc, wdt_on, pwrt_on, lvp_off, protect_off
XALL
NOLIST
else
LIST
LIST p = 16F819, r = dec, w = -302
INCLUDE “P16F819.INC” ; MPASM Header
__config _HS_OSC & _WDT_ON & _PWRTE_ON & _LVP_OFF & _CP_OFF
NOLIST
endif
LIST
a jelikož kompiluji MPASWINem, vezme si zde uvedený config
Pokud zde tedy změním na config dle Tvé rady, bude vše OK
Řadek kodu v programu PBP mohu vymazat.


;* 16F819.INC *
;* *
;* By : Leonard Zerman, Jeff Schmoyer *
;* Notice : Copyright © 2004 microEngineering Labs, Inc. *
;* All Rights Reserved *
;* Date : 01/07/04 *
;* Version : 2.45 *
;* Notes : *
;****************************************************************
LIST p = 16F819, R=DEC
INCLUDE “P16F819.INC” ; MPASM Header
__config _INTRC_OSC & _NOCLKOUT & _WDT_OFF & _LVP_OFF & _PWRT_ON & _PROTECT_OFF & _BOD_OFF

Spíš takhle. Ale neznám PicBasicPro. Dej sem ten program, ať vůbec vím, o co jde.

Poněkud to nefunguje
biped-explore.lst (1.05 MB)

Ještě původní .bas
biped-explore.txt (3.49 KB)

Tak *.LST nepřežvýká ani mě. Tobě z toho neleze soubor *.ASM?

asm
biped-explore.asm (7.19 KB)

Jsem s toho sice trošku vedle, ale tenhle ASM ti MPASWIN nepřeloží. Musíš použít překladač, kterej to zvládne, asi Basic Pro Compiler. hledal jsem ted na netu a nenašel jsem nic, kromě jakési demoverze.

Ještě mě napadlo - Tvé uvedené instrukce nejsou v Configuration Bits P16F819.inc
Nechtělo by to použít tam uvedené instrukce?
Dík za strávený čas

Tak si ten __config uprav podle *.INC. Ale stejně mi MPASWIN vyhodí 159 error. Takže asi nebude chyba jen v tomhle.

Kterej soubor dáváš do MPASWIN na přeložení?

__config _INTRC_IO&_WDT_OFF&_LVP_OFF&_PWRTE_ON&_BODEN_OFF

snad jsou náhrady dobře, akorát tam není náhrada za PROTECT_OFF, kterou nevím
MPASWIN hlásí bezchybnou kompilaci
Pokud by jsi stál o PBP, napiš mi na centrum
Ještě jednou dík

__config _INTRC_IO & _WDT_OFF & _LVP_OFF & _PWRTE_ON & _BODEN_OFF & _CPD_OFF

Zkus tohle

Hurá!!!
Dobrá věc se podařila.
Mimochodem ještě k HEX.
Potřeboval jsem nastavit kmitočet Ir čidla a mého Metexe 3850 přestalo bavit měření kmitočtu. Našel jsem v ruské knize návod na jednoduchý měřič kmitočtu s PICem

Odbočka - mj je v knize návod na “Vaginálno-analnyj elektrostimulátor” s PICem - na co všechno se PICy nechají použít

zkompiloval program MPASWINem a opět jiný kod než má autor a funkce v pořádku. Mrkev v zimě…
Asi záleží na postavení hvězd.

Ještě jedno Díky moc!!!

Config pomohl nebo něco jiného?

Všechno tam směřuje a točí se kolem toho celej svět, tak proč ne i PIC. A mají stejný 3 pismenka :smiley: :smiley: :smiley: :smiley: :smiley:

Omlouvám se, ale věc probíhá takto
Do studia vložím bas
Sudio má nastaveno v Compile and program options jako compiler PBP a jako assembler MPASM.
Pokud zvolím kompilaci, rozjede se MPASWIN a hlásí chyby, pokud se mu něco nelíbí.
Ten také neustále protestoval.
Po zadání posledního configu nyní hlásí vše OK.
Myslím, že jednodušší cesta vede přes úpravu řádku v kodu PBP, ale to musím ještě nastudovat.
Ale nyní se vše chová jak má a jsem zvědav, jak bude po dokončení potvůrka fungovat.

To je good. Jsem naistaloval PBP a přestal mi fungovat ICD2