Det jeg gør er at jeg sætter strøm til mit board og sætter boardet til ICD brænderen. Så går jeg ind i MPLAB IDE 5.4 der skriver jeg program koden som jeg har vist ovenfor. Så går jeg op i menuen under "Picstart Plus" og trykker "Enable Programmer" og så skriver den at den prøver at kontakte brænderen, men efter et stykke tid kommer denne meddelse: "Picstart Plus not found on COM1" Gør jeg noget forkert skal jeg ikke trykke på den der hedder "Enable programmer" eller?
rb3 har ikke noget med ICSP at gøre og bruges ikke her.
Du behøver ikke at skrive programmet først du skal kunne komme i kontakt med den. Det er ikke en "PicStart" du har men en ICD. Jeg bruger nu ver. 7.30 og kan vanskeligt huske menuerne i tidligere versioner. Men der må være en "programmer" menu eller noget lignende. Der må du kunne finde ICD.
Fremgangs måden er sådan: Du skriver programmet (gem endelig) Assemblere det dvs. find menu pkt. "Build all" eller måske blot "Build". Den begynder så at oversætte programmet til microcontroller sprog. Det skulle lykkedes med en "build succeded" eller noget lign. Først nu er du klar til at loade programmet over i uC.
Jeg har gjort som du sagde skiftet over så den ved jeg bruger ICD. Så har jeg skrevet koden og gemt. Men når jeg vil compile/assemblere så går jeg op i "project" menuen og der står "build all" men man kan ikke trykke på den! der står også "Build node" den trykkede jeg på istedet og så ligner det at den begynder at compile men så skriver den denne meddelse: ------------------------------------------------------------------------------ Building LEDON.ASM...
Command line: " +m LEDON.ASM"
MPLAB is unable to find output file "LEDON.hex". This may be due to a compile, assemble, or link process failure.
Jeg har fundet ud af det det var bare fordi jeg skulle starte et nyt projekt. Men er stød på en ny ting når jeg så har skrevet koden og trykker build all så vil den gemme og så gemmer jeg så men den bliver ved med at vil gemme det samme hele tiden? og hvis jeg bare trykker anuller skriver den at den fejlede i at lave projektet?
Det skal kunne virke uden at oprette et projekt. Som det er nu (i ver.:7.30) når du er begyndt på det vil ikke tilbage til absolut kode som det vi laver her.
Er lidt lost for tror ikke jeg for gemt en eller anden .hex fil ordenligt? er det ikke muligt for dig at guide mig igennem helt fra begyndelsen? hvis det er kan du hente den version jeg bruger her: http://ww1.microchip.com/downloads/en/DeviceDoc/mp57040full.zip
Det ville altså være lidt rart hvis du svarede på spørgsmålene længere oppe.
Læs nu omhyggeligt hvad jeg skriver FØR du laver alt muligt ANDET.
Det hedder ikke movlf men movwf.
I asm (som dette er) skal filen indordnes efter kollonne reglerne: Labels HELT ude til højre. kommandoer (som goto og movwf) placeres min. 1 tabulator inde.
Dertil skal vide hvad uC den skal lave det til, og hvilken konfiguration den skal have, det har du ikke fortalt noget om.
Nåhh det er en pic16f84 jeg prøver at programmere. Men kiggede i manualen til brænderen havde ikke set der stod hvordan man brugte MPLAB så er begyndt at læse det har også rettet koden så nu er den compilet. Men nu er jeg lige ved at læse hvordan jeg skriver det over til ICDen. Skal jeg bare læse videre og prøve? eller skulle jeg indstille et eller andet med den uC?
men hvordan ændre jeg det til pic16f84? Jeg fandt et sted hvor det lignede man skulle vælge pic type men der kunne man kun vælge fra pic16f70 til pic16f77?
Det kan gøres på flere måder bla. i menuerne, men så skal ændre det du hver gang du åbner eller skifter controller. Derfor er det lidt fiksere at angive det i program filen.
Du skriver øverst .. min. 1 tabulator inde (=1 kollonne) list p=16f84a
Det bevirker: "list" at der generes en udførlig fil med beskrivelse af hvad assembleren lavede.
p=16f84a at den laver programmet til 16f84A.
For det er en "a'er" ikk' ?
Lidt senere bør du også gå over til at bruge de forud definerede register definitioner. Med: #include p16f84a.inc
Men vent med det for det giver umiddelbart nye problemer.
Tror faktisk det er en pic16f84 og ikke en 'a'er :( gør det noget? nu har jeg prøvet at tilføje det men når jeg trykker "program" knappen siger den "check for target" "no target"
Du ændre bare teksten til p16f84 altså sletter a'et. Der var noget med at rb3 skulle have en pull down på 10Kohm på nogle modeller. Altså en 10Kohm fra rb3 til 0V.
Check iøvrigt at forbindelserne mellm din opstilling og ICD'en nu faktisk OGSÅ er rigtige.
5V + og minus må være rigtige ellers havde du lukket røgen ud af den.
altså jeg har pillet rb3 fra icd'en er det rigtigt? fordi før havde jeg jo lavet det sådan den 6 ledning fra icd'en gik ned til rb3! men det er pillet fra nu! og så sætter jeg en 10Kohm modstand fra uS'ens ben rb3 og op til 0v?
okay nu har jeg loddet en 12Kohm på men den siger stadig "no target" jeg har kigget på mit print og alt ser ud til at være samlet rigtigt efter det diagram jeg har lavet! Jeg har lavet det på et hulprint kan mit diagram være forkert du kan se det her: http://mytestpage.1go.dk/ sådan har jeg loddet det sammen præcis!
Den kigger efter en PIC16F870 Jeg har fundet ud af at ændre hvad den skal kigge efter men der er kun 7 valgmuligheder og det er fra PIC16F870 til PIC16F877
Nej der er følgende valgmuligheder: PIC16F870 PIC16F871 PIC16F872 PIC16F873 PIC16F874 PIC16F875 PIC16F876 PIC16F877
Det er når jeg trykker "project" --> "edit project" så nede ved "development mode" trykker jeg "change" og det er så derinde jeg sætter den til at bruge IDC og der kan man så også vælge mellem de 7 processor typer
Hmm vil det egenligt sige at jeg godt kan brænde en PIC16F84 med brænderen men bare ikke med ICD? altså ICD er jo bare det der med at kunne køre boardet og programmere samtidig er det ikke?
Jeg forstår ikke hvorfor jeg har SÅ svært ved at få dig ud den vildfarelse...
Læs venligst dette rigtig mange: En "brænder" som du hentyder til var noget man brugte i gamle dage. Et apparat hvor man loaded et program el. lign over i en kreds FØR man monterede den. Det var jo klart upraktisk i en produktion at man først skulle programmere kredsen siden montere den og skulle den kunne ændres måtte man montere den i en sokkel så den kunne komme ud igen. Tydeligt besværligt og fordyrene. Derfor gik man væk fra særskilte brændere ... altså "brændere" hører til på teknisk museum!! Samtidigt gik udvikliingen mod "mindre" og "kan mere", dermed vokser behovet for at kunne se hvad der sker i controlleren. Derfor fandt smarte uC fabrikanter som fx. Microchip og ATMEL på at kombinere det hele i et apparat der samtidigt kunne loade programmet i controlleren MENS den sidder i det færdige print! ..og samtidigt kunne "Debugge" dvs. vise hvad der foregik inde i den! Microchip kalder det for ICSP-D "In Circuit Serial Programming - Debuging". Et voldsomt skridt frem der gjorde at nu var den særskilte brænder HELT død.
Du har ikke en brænder. Den kreds du ser på ICD er dens EGEN kreds grunden til at den sidder i en sokkel er at man dengang ikke kunne opdatere den direkte. Derfor hvis der kom nye uC'ere til skulle man hive den ud og over i en brænder og opdatere den. Men det er slut nu ICD2 der kan opdater den direkte fra Computeren.
Du har sådan set ikke noget at bruge sokkel til vel. Man lader kredsen sidde direkte i, med mindre man forventer at lukke røgen ud af den. Hvis det så skulle ske kan du bare brække den af med lidt blød vold og sætte den nye i.
16F870 har til med adskellige andre fikse ting som fx. AD converter og en UART. Tilmed er den "pin for pin kompatibel" (passer umiddelbart sammen) med 18F serien der er ret suveræn lige nu.
Okay men troede bare ikke det var godt for pic'en at lodde den direkte på mit print. Den skal vil bare forbindes ligesom jeg har gjort med 16f84'eren?? Havde du en Pic16f870 hvis det var?
Jep har jeg også allerede hentet. Går igang med at lave et diagram over boardet
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.