Waar zijn we nu mee bezig ? Microcontrollers

Gestart door ToThePoint, 13 januari 2012, 10:27:28 AM

MickeyMouse

CiteerWaar het hem om gaat is dat ik, net als jij in een assembler tijdperk ben 'gekweekt'.  Assembler heeft op al mijn programma's zijn stempel gezet (zowel privé als professioneel - als je alleen bent om  software te schrijven, schrijf je die naar je eigen goesting/kennis/ervaring).  In elke taal probeer ik de assembler denkwijze te implementeren (vandaar dat mijn code soms moeilijk vatbaar/leesbaar is). 
Jongere generaties en nieuwkomers zien assembler vaak als een draak waar je heel veel ontwikkelings-, debug- en denktijd moet insteken (zie mijn reactie #705 - en die was zeker niet negatief bedoeld!).

Assembler, de taal van de electronica.  Denk in logische bouwstenen (destijds TTL) en zet dat om in code en je hebt een programma.  Als je nu aan een serieuze technicus vraagt wat TTL is, antwoord die steevast met 'Time To Live'...
Zo herkenbaar !!

Harm

Citaat van: raf op 31 december 2014, 20:23:56 PM
Hé Harm welkom hier
Dank Raf
Ik heb na wat dagen "freubelen", in gang gehouden door mijn stug volhouden, het volgende resultaat weten te behalen:

https://www.youtube.com/watch?v=qWcDirLT1As

Met een MPX5999 meet ik de keteldruk.
In een ADC maakt de PIC16F88 daar een rekengetallenlijn van, waarvan ik een deelgebied synchroniseer met de minimum- en maximum positie van de servo.
Als de druk tegen de maximumdruk aan komt draait een servo de benzinekraan steeds verder dicht.
Zakt de druk draait de servo de kraan weer open.

Mocht ik tegen grotere problemen aanlopen, kan ik het altijd nog vragen, ik denk dat voor mij een nieuw draadje openen nog niet nodig is.
Volgende stappen zijn het bedienen van de opstook-gaskraan, de tweede gasbrander, de tweede benzinebrander en het bekijken van zeker twee thermokoppels die moeten beoordelen of de vlam aan is.
Ik heb namelijk nog nergens kunnen vinden wat de golflengte van een vergaste benzine vlam is, kan dus ook geen passende IR transistor zoeken.
Een waxine vlam is geel en die geeft een prachtig contrast: licht/donker=aan/uit, mijn vlam zie je niet.
Vandaar de keuze voor thermokoppels.

groet van Harm

Havoc

CiteerIk heb namelijk nog nergens kunnen vinden wat de golflengte van een vergaste benzine vlam is, kan dus ook geen passende IR transistor zoeken.

Zal maandag op het werk eens kijken of er in de documentatie van IR branddetectoren iets staat. Maar zo'n detector ga je niet in je bootje willen :D
Met vakantie voor onbepaalde duur.

patrick smout

Citaat van: Harm op 02 januari 2015, 15:04:06 PM

Ik heb namelijk nog nergens kunnen vinden wat de golflengte van een vergaste benzine vlam is, kan dus ook geen passende IR transistor zoeken.

Foto van nemen van je vlam met een digitale camera, bij voorkeur in RAW formaat. Vervolgens in Photoshop importeren en kleurtemperatuur bepalen.
Heb ik pas nog gedaan om de kleur temperatuurwaarde te bepalen van halogeen spots (kwestie van de juiste mee te brengen uit de winkel)

mvg,

Patrick
Met vriendelijke groeten,

Patrick Smout

Harm

Goede middag allen.
Is er iemand met ervaring met Proton ide en Pickit2
en dan ook nog in combinatie met een PIC16F883?

datablad: https://cdn-reichelt.de/documents/datenblatt/A200/PIC16F883_MIC.pdf

Ik heb de aansluitingen voor de pk2 bedacht op:(links pk2 rechts het ic)
1==1
2==20
3==19
4==28
5==27

Ik krijg wel wat in de pic, maar niet de juiste reactie.
Ik krijg nu ook een melding protected.
Daarom ben ik nog maar eens gaan kijken naar de "fuses" die je kan ingeven.
Nu blijken de f628 en de f88 heel anders te werken dan deze 883
CONFIG (datablad 210) ipv te schrijven:

DEVICE 16F88
CONFIG WDT_OFF, PWRTE_ON, LVP_Off, MCLR_OFF, HS_OSC

kan het met DECLARE
alleen dan krijg ik een melding dat er een #DEFINE
van is gemaakt.

Van het één in het ander kom ik nu bij
CONFIG1 en CONFIG2
Alleen wordt CONFIG 2 =%1111111111111111
niet geaccepteerd en wordt er vermeld: comma missing or command terminated incorrectly.


Wie heeft er voor mij een voorbeeld van de eerste regels van een programma en is mijn programmer juist aangesloten?

Ik krijg als ik PK2 laat zoeken wel de melding
device: pic16f883
en
PICkit2 found and connected
PIC Device Found
geregeld met kuren maar soms geeft het Programming Successful. (dus ga ik er van uit dat de verbinding in orde is)

grt Harm





Geert

Harm,

vermits je PK2 de µC herkent, zal de aansluiting wel correct zijn.

Ik ben wel geen Proton kenner, maar in assembler zijn de config regels voor een PIC16F883 zo:

   __CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT

   __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V

een beetje aanpassen naar je configuratie en proton Basic taal. Ik ken je hardware aansluitingen niet. Het voorbeeld hierboven gebruikt de interne oscillator van de µC!

Geert


Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Harm

Citaat van: Geert op 07 januari 2015, 16:55:19 PM
beetje aanpassen naar je configuratie en proton Basic taal

Dank Geert voor de reactie.
Dat "aanpassen aan proton" is nu juist het probleem.
Ik ben ondertussen een stapje verder, deze pic gaat ook nog over zijn nek met "pullup" commando.
Ik heb nu dat ik kan schrijven wat ik wil en dat er in ieder geval naar de ingang wordt gekeken en afhankelijk daarvan een uitgang verschijnt.

Die settings is nu verder een kwestie van vele commando's proberen net zolang tot die geen error meer geeft.
met een "=" of met een ", " of met een "_". ik hoef me niet te vervelen.  :-\

Ik ontdek wel dat proton nauwelijks gebruikt wordt.
Er zijn voorbeelden genoeg maar in een taal die ik niet ken en dus ook niet kan vertalen.

raf

heb ook pullup problemen gehad en het zo kunnen oplossen

Declare PortB_Pullups On
shit te snel geklikt

in proton boven aan kun je de fuses automatiche setten
knopke en daar staan dan alle fuses die de processor heeft en kun je aan en uit vinken 
ik heb nu compiler 3571 dus als je deze versie niet hebt upgraden vriend


gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

PeterC

Citaat van: Harm op 07 januari 2015, 17:14:19 PM
...Ik ontdek wel dat proton nauwelijks gebruikt wordt...

...En voor een licentie van £150 mag je wel support (forum - helpdesk) verwachten van de producent van die compiler...
Groetjes, Peter


raf

proton ide is evolved naar Proton Amicus18

proton ide is dus eigenlijk het einde van het spoor
alle ontwikkeling gaat dus nu naar amicus 18

ik heb proton ide nog kunnen kopen maar of het nu nog te koop is heb ik geen idee van
ik heb eigenlijk twee versie's "eentje gratis en eentje betaald"maar het is wel makkelijk met twee usb sticks daar ik nu ook op de laptop boven aanpassingen kan doen terwijl ik normaal onder op mijn grote pc programmeer

er komen nog wel geregeld updates maar dat heeft dan meer te maken met de nieuwere micro chips processoren die uit komen dan update van de compiler zelf

ik ben verder wel tevreden over de compiler zelf en het crownhill forum is zo actief als de leden zelf maar dat is op elk forum zo
wat programmeren aan gaat zijn er nu zoveel nieuwe programmeer talen en ik voel me gemakkelijk en vertrouwd met basic wat ik een 30 jaar geleden heb geleerd .enig probleem is dat er nu processor gerelateerde instructies zijn bij gekomen die vroeger niet bestonden
ook de manier van programmeren is door de tijd veranderd .terwijl men vroeger goto en gosub gebruikte worden deze routines nu zo weinig mogelijk gebruikt.
dan het probleem met de microchips onderling heb ik ook reeds ervaren hoor Harm
porta.1 voor de ene en gpo.1 voor de andere

gr raf


If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

Harm

Citaat van: raf op 08 januari 2015, 09:09:43 AM

porta.1 voor de ene en gpo.1 voor de andere


Dan heb ik gewoon pech dat niemand met een PIC16F883 werkt.

raf

de grootste die ik gebruik is de 16F722
gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

Sattrickske

Citaat van: Harm op 08 januari 2015, 11:33:03 AM
Citaat van: raf op 08 januari 2015, 09:09:43 AM

porta.1 voor de ene en gpo.1 voor de andere


Dan heb ik gewoon pech dat niemand met een PIC16F883 werkt.
Ik werk ermee (of toch met die reeks), maar niet met Proton.  MPLabX en C/assembler en daar is het gewoon PORTA.  De GPIO terminilogie komt eerder uit de ARM wereld (Arduino ed.)
De poort declaraties zouden echter geen probleem mogen zijn, althans niet in C.  Daar gebruik je #define om ze te remappen naar iets van jouw goesting, dat zal in Proton ook wel bestaan, niet?

raf

hoi patrick

het gebruik van de poort defenities blijkt af te hangen van welke processor je gebruikt in proton
'****************************************************************
'*  Name    : perronverlichting                            *
'*  Author  : [raf janssens]                                    *
'*                                                              *
'*  Date    : 26-12-2014                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device 12F629               ; processor type 12F628

Xtal 4                     

Config INTRC_OSC_NOCLKOUT,_  ; Interne oscilator aan
       WDT_OFF,_             ; WatchDog Timer uit
       PWRTE_ON,_            ; Power-up Timer Enable aan
       MCLRE_ON,_            ; Externe Master Reset Enable aan
       BODEN_OFF,_           ; Brown Out Detectie Enable uit
     
       CP_ON                 ; Code Protection aan

All_Digital TRUE             ; Alle poorten digitaal

Symbol led3  = GPIO.2      ;
Symbol led4 = GPIO.4       ;
Symbol schakelaar =   GPIO.3          ;licht aan zetten
Symbol led1 = GPIO.0       ;
Symbol led2 = GPIO.1        ;
Symbol led5 = GPIO.5
Dim waarde As Byte
Clear                        ; Wis alle ram geheugen
               
DelayMS 500                 

             

         ;543210            ; Hulpregel Poort poort_A
  GPIO = %000000            ; Zet poort_A laag
TRISIO = %111111          ; Poort_A als ingang


start:
While 1=1
While schakelaar = 1 :Wend       ;als schakelaar uit staat doe niks
For waarde =1 To 5
      Toggle led1
      DelayMS 50
      Next
        led1 = 1
       DelayMS 400
  For waarde =1 To 3
         Toggle led3
         DelayMS 50
         Next
         led3 = 1
        DelayMS 400
  For waarde =1 To 5
        Toggle led5
        DelayMS 50
        Next
          led5 = 1
         DelayMS 300
For waarde =1 To 4
         Toggle led4
         DelayMS 50
         Next
         led4 = 1
        DelayMS 100
For waarde =1 To 5
        Toggle led2
        DelayMS 50
        Next
        led2 = 1
         DelayMS 500
     ;zolang schakalaar is aan deze lus doorlopen   
  While schakelaar = 0
          For waarde =1 To 1
          Toggle led1
         Next
         led1 = 1
         DelayMS 1000
  For waarde =1 To 3
         Toggle led3     
         Next
         led3 = 1
         DelayMS 2000
  For waarde =1 To 4
         Toggle led5       
         Next
          led5 = 1     
         DelayMS 3000
 
  :Wend 
       
   ;leds terug uit zetten               
         led1 = 0
         DelayMS 100
         led2 = 0
         DelayMS 100
         led3 = 0
         DelayMS 100
         led4 = 0
         DelayMS 100
         led5 = 0
Wend

dit programma laat de perron verlichting aan gaan en nu en dan flikkert een lamp hier en daar.ik dacht dat de verlichting aan de midden balk van het perron zou hangen maar nu blijkt dat ze dwars onder de overkapping hangt en het meer licht balken zijn dan ik dacht.
maar het werkt en dat is dus de zaak
maar zoals je kunt zien werkt deze processor dus met gpi0.X als poort definitie en niet portA.X
gr raf   
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

Sattrickske

Klopt inderdaad de PIC12 reeks gebruikt GPIO (omdat er een maar handjevol IO pinnetjes aanwezig is vermoed ik).  PIC16/PIC18 gebruikt PORTA, PORTB, etc... omdat er veel meer pinnetjes zijn.
De ARM reeks (Atmel, STM, ...) gebruikt dan weer een andere variant GPIOA, GPIOB, ...

Ik dacht dat de oorspronkelijke vraag over een 16F883 ging?  Je code toont wel 12F628...  Da's wel een heel ander gamma van PIC processoren dan de 16F reeks...