SchemaTheek
 
Home Nieuws Forum Schema's Artikelen Magazine Downloads Links Shops Zoeken
 
Controle Paneel
Gebruikersnaam
Wachtwoord
  Onthoud mij
» Wachtwoord?
» Registreren
Site info
» Het Team
» Contact
» FAQ
» Leden
» Upload Archief
Stats
Totaal online: 2
2 gasten
0 leden:
Forum > Digitaal > code picbasic pro naar proton
« 1 [2]
Stynus
Admin
Berichten: 2691
Gepost op vrijdag 9 September 2011 17:07:33 QuoteWijzig

Waarschijnlijk een probleem met de fuses dan. Want die heb je niet in je code staan dus neemt de programmeer software zijn default waardes.

Hang op die dat niet werkt eens een led en laat die eens knipperen, dat zal dan normaal ook niet werken.
 
[Bericht gewijzigd door Stynus op Vrijdag 9 September 2011 17:08:15]


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
CARDAN
Lid
Berichten: 225
Gepost op zondag 23 Oktober 2011 12:01:10 QuoteWijzig

intussen lukt het om alles op glcd te krijgen
wat ik nu echter zie dat alles wat afgedrukt staat een normale font is

kan b.v de freq uitlezing inj grote getallen gezet worden en andere fonts en dan het menu b.v in normaal tekens gezet worden

ik weet dat de font.inc daarvoor zorgt maar hoe moet je alles gaan combineren grtzzz alain mischien even een listing erbij of verschillende fonts indien mogelijk grtzz caradn

Stynus
Admin
Berichten: 2691
Gepost op zondag 23 Oktober 2011 13:43:48 QuoteWijzig

Als je letter hoger is dan 8 pixels, dan zal je van elke letter een bitmap moeten maken en die zelf in het lcd inladen op de juiste positie.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
reddevil
Lid
Berichten: 1150
Gepost op maandag 24 Oktober 2011 21:31:58 QuoteWijzig

Heb je de code gestuurd. Zoals je kunt zien is dat al 32K voor een paar grafische dingetjes te laten zien op het display. Ik weet dus niet hoeveel K je nog over hebt in je pic en wat eigenlijk je doelen zijn.
Een paar drukknoppen is geen probleem, dat is met een trucje simpel te maken.
Je kan ook in paint een basis scherm maken en daar dan dingen gaan op tekenen, wordt al iets moeilijker en vreet geheugen, 1K per afbeelding.


Vb van een menu, gemaakt in paint en met een programma geconverteerd voor in picbasic. Die druk ik dan af op het scherm. Druk ik op een knop, dan teken ik lijnen bij op het scherm. Laat ik los dan wis ik terug die lijnen. Het lijkt simpel, maar is het niet.


Veel te weinig tijd voor mijn projecten of heb ik er soms te veel?
CARDAN
Lid
Berichten: 225
Gepost op maandag 24 Oktober 2011 21:46:57 QuoteWijzig

mail is toegekomen REDDEVIL maar krijg de bas extentie niet open ik maak enkele drfukknoppen op het scherm voor up en down en frequentie uitlezing groetjes Alain

CARDAN
Lid
Berichten: 225
Gepost op maandag 24 Oktober 2011 21:48:45 QuoteWijzig

das echt prachtig he petje daarvoor af hoor amaaai ammaiii

Stynus
Admin
Berichten: 2691
Gepost op dinsdag 25 Oktober 2011 17:51:14 QuoteWijzig

.bas kan je gewoon in picbasic openen.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
CARDAN
Lid
Berichten: 225
Gepost op zaterdag 29 Oktober 2011 05:50:23 QuoteWijzig

windows en antivirus zag dat anders stynus nu is het in orde he

hanskemink
Lid
Berichten: 2
Gepost op donderdag 5 Juli 2012 18:13:44 QuoteWijzig

Niet meer geldig.
 
[Bericht gewijzigd door hanskemink op Maandag 9 Juli 2012 01:03:49]

CARDAN
Lid
Berichten: 225
Gepost op zaterdag 10 September 2016 23:04:48 QuoteWijzig

nu heb ik een code binnengekregen maar zie niet echt waar de pll freq kan ingegeven worden voor verandering bij deze orginele begint de freq op 160 mhz ik wil naar 1250 mhz kan iemand ff helpen wat ik over het oog zie ??????? hier de code

Define CONF_WORD = 0x3f38 'Configuratie microcontroller
Define CLOCK_FREQUENCY = 4 'kloksnelheid
AllDigital 'Alle poorten digitaal

'--------76543210
TRISA = %00000000 'Poorten A in (1) of uitgang (0)
TRISB = %11100000 'Poorten B in (1) of uitgang (0)

Define LCD_LINES = 2 'Aantal regels in display
Define LCD_CHARS = 16 'Aantal karakters per regel
Define LCD_BITS = 4 '4 of 8 bits
Define LCD_DREG = PORTB 'poort uitgang
Define LCD_DBIT = 0 '0 = 0,1,2,3 / 4 = 4,5,6,7
Define LCD_RSREG = PORTB 'poort uitgang voor RS
Define LCD_RSBIT = 4 'poortnummer voor RS
Define LCD_EREG = PORTA 'poort uitgang voor E
Define LCD_EBIT = 3 'poortnummer voor E
Define LCD_COMMANDUS = 3000 'Wachttijd naar LCD commando
Lcdinit 0 'Initialisatie zonder cursor

'Variables instellen
Dim first As Byte 'Eerste regel naar TSA
Dim second As Byte 'Tweede regel naar TSA
Dim mhz As Byte 'frequentie uitlezing voor de komma
Dim khz As Byte 'frequentie uitlezing achter de komma
Dim tune As Bit 'Tune status
Dim data As Byte 'Uitleesstatus TSA5511
Dim addr As Word 'Addressering TSA5511
Dim deelgetal As Word 'Deelgetal PLL
Dim lock As Bit 'Lock status

'Variables instellen
tune = 0 'Tunestand uit
lock = 0 'Lockstand uit
PORTA.3 = 0 'Eindtrap uit

'I2C configureren
Symbol scl = PORTA.0 'SCL op A0
Symbol sda = PORTA.1 'SDA op A1
I2CPrepare sda, scl

'Eeprom uitlezen naar variables
Read 0, mhz 'Uitlezen eeprom freq. voor de komma
Read 1, khz 'Uitlezen eeprom freq. na de komma

'Welkomsboodschap
Gosub schrijf 'TSA5511 instellen op de uit de eeprom ingelezen frequentie
PORTA.2 = 1 'LCD backlight aan
Lcdcmdout LcdClear 'Scherm wissen
Lcdcmdout LcdLine1Home 'LCD schrijven vanaf begin regel 1
Lcdout " - pll 2010 - "
Lcdcmdout LcdLine2Home
Lcdout " for tsa5511 " 'LCD schrijven vanaf begin regel 2
WaitMs 1500 '1500ms wachten
Lcdcmdout LcdLine1Clear 'Eerste regel wissen

'Data weergeven op display
Gosub lcdfreqoutput

'Lock status van PLL uitlezen en aktie ondernemen
Gosub lockstatus

'Hoofdloop starten
Goto loop
'Einde initialisatie

'Start hoofdloop
loop:
If tune = 0 And PORTB.6 = 1 Then
Gosub tunemode 'Indien op de SET toets wordt gedrukt naar tunemode gaan
While PORTB.6 = 1 'Wachten tot SET toets is losgelaten voor vervolg
ASM: nop
Wend
Endif

If tune = 1 And PORTB.6 = 1 Then
Gosub freqvast 'Indien op de SET toets wordt gedrukt freq. vastzetten
While PORTB.6 = 1 'Wachten tot SET toets is losgelaten voor vervolg
ASM: nop
Wend
Endif

If PORTB.5 = 1 And tune = 1 Then Gosub frequp '1 frequentiestap omhoog
If PORTB.7 = 1 And tune = 1 Then Gosub freqdown '1 frequentiestap omlaag
If PORTB.5 = 1 And tune = 0 Then PORTA.2 = 1 'Backlight aan
If PORTB.7 = 1 And tune = 0 Then PORTA.2 = 0 'Backlight uit

If tune = 0 Then Gosub lockstatus 'PLL status uitlezen en stuurtrap en led in of uitschakelen
Goto loop 'Loop herhalen
End
'Frequentiestap omhoog
frequp:
WaitMs 200 '200ms wachten, voor het geval up of down wordt vastgehouden
khz = khz + 5 '50kHz erbij

If khz >= 100 Then 'Indien 1000 kHz is bereikt achter de komma, dan kHz op 0 en MHz een erbij
khz = 0
mhz = mhz + 1
Endif

If mhz = 108 And khz > 0 Then 'Indien 108MHz is bereikt terug naar 87,50MHz
mhz = 87
khz = 50
Endif
Return
'Frequentiestap omlaag
freqdown:
WaitMs 200 '200ms wachten, voor het geval up of down wordt vastgehouden
khz = khz - 5 '50kHz eraf

If khz > 100 Then 'Indien 0kHz is bereikt achter de komma, dan kHz op 95 en MHz eentje eraf
khz = 95
mhz = mhz - 1
Endif

If mhz = 87 And khz < 50 Then 'Indien 87,50MHz is bereikt terug naar 108MHz
mhz = 108
khz = 0
Endif
tune = 1 'We zitten in de tune mode
Gosub tunemode
Return
'Tune modus
tunemode:
tune = 1 'Tunemode inschakelen
Lcdcmdout LcdLine1Pos(11) 'Besturing in tune modus dit op het display weergeven
Lcdout "TUNE "
Gosub lcdfreqoutput
Return
'Frequentie vastzetten en I2C update
freqvast:
tune = 0 'Tune mode uitschakelen
lock = 0 'Lockstatus uitschakelen
PORTA.3 = 0 'Eindtrap uit
Write 0, mhz 'Nieuwe data opslaan in eeprom
Write 1, khz 'Nieuwe data opslaan in eeprom
Gosub schrijf 'Nieuwe data versturen naar de TSA5511
Return
'Frequentie weergeven op display
lcdfreqoutput:
Lcdcmdout LcdLine1Home 'LCD schrijven vanaf begin regel 1
If mhz < 100 And khz < 10 Then Lcdout " ", #mhz, ".0", #khz, "MHz"
If mhz < 100 And khz > 5 Then Lcdout " ", #mhz, ".", #khz, "MHz"
If mhz > 99 And khz < 10 Then Lcdout #mhz, ".0", #khz, "MHz"
If mhz > 99 And khz > 5 Then Lcdout #mhz, ".", #khz, "MHz"
Return
'Lockstatus van PLL controleren
lockstatus:
If tune = 0 And lock = 0 Then 'Indien niet in tune mode en lock uit staat deze routine uitvoeren
I2CStart 'I2C data starten
I2CSend 0xc3 'Vragen om data
I2CRecN data 'reactie uitlezen
I2CStop 'Afsluiten
Endif

If tune = 0 And lock = 0 And data.7 = 1 Then 'Indien 7e bit 1 is (geen power op TSA)
PORTA.3 = 0 'Eindtrap uit
Lcdcmdout LcdLine1Pos(11) 'LCD schrijven op regel 1 vanaf positie 11
Lcdout "I2CERR" 'I2C error op display
Gosub schrijf 'Opnieuw TSA5511 programmeren
Endif

If tune = 0 And lock = 0 And data.6 = 0 Then 'Indien 6e bit 0 is, dan is er geen lock
PORTA.3 = 0 'Eindtrap uitschakelen
Lcdcmdout LcdLine1Pos(11) 'LCD schrijven op regel 1 vanaf positie 11
Lcdout "UNLOCK" 'Unlock op display
Gosub schrijf 'Opnieuw TSA5511 programmeren
Endif

If tune = 0 And lock = 0 And data.6 = 1 And data.7 = 0 Then 'Indien power OK is en wel een lock, LOCK op display en eindtrap inschakelen
Lcdcmdout LcdLine1Pos(11) 'LCD schrijven op regel 1 vanaf positie 11
Lcdout "LOCKED" 'Locked in display
WaitMs 1000 '1 seconde wachten
PORTA.3 = 1 'Eindtrap inschakelen
lock = 1 'Lockbit op 1 zetten (Lockstatus wordt hierna niet meer opnieuw uitgelezen)
Gosub schrijf 'Opnieuw TSA5511 programmeren
Endif
Return
'Data naar TSA5511 schrijven
schrijf:
deelgetal = ((100 * mhz) + khz) / 5 'Deelgetal berekenen, getal groot maken omdat we niet achter de komma kunnen rekenen

'Berekenen deelgetal eerste 8 bits
first = 0
If deelgetal >= 8192 Then
deelgetal = deelgetal - 8192
first = first + 32
Endif
If deelgetal >= 4096 Then
deelgetal = deelgetal - 4096
first = first + 16
Endif
If deelgetal >= 2048 Then
deelgetal = deelgetal - 2048
first = first + 8
Endif
If deelgetal >= 1024 Then
deelgetal = deelgetal - 1024
first = first + 4
Endif
If deelgetal >= 512 Then
deelgetal = deelgetal - 512
first = first + 2
Endif
If deelgetal >= 256 Then
deelgetal = deelgetal - 256
first = first + 1
Endif

'Berekenen deelgetal tweede 8 bits
second = 0
If deelgetal >= 128 Then
deelgetal = deelgetal - 128
second = second + 128
Endif
If deelgetal >= 64 Then
deelgetal = deelgetal - 64
second = second + 64
Endif
If deelgetal >= 32 Then
deelgetal = deelgetal - 32
second = second + 32
Endif
If deelgetal >= 16 Then
deelgetal = deelgetal - 16
second = second + 16
Endif
If deelgetal >= 8 Then
deelgetal = deelgetal - 8
second = second + 8
Endif
If deelgetal >= 4 Then
deelgetal = deelgetal - 4
second = second + 4
Endif
If deelgetal >= 2 Then
deelgetal = deelgetal - 2
second = second + 2
Endif
If deelgetal >= 1 Then
deelgetal = deelgetal - 1
second = second + 1
Endif

I2CStart
I2CSend 0xc2
addr.HB = first
addr.LB = second
I2CSend addr.HB '1e regel versturen
I2CSend addr.LB '2e regel versturen
If lock = 0 Then addr.HB = 206 'Indien geen lock, chargepump op 220uA
If lock = 1 Then addr.HB = 142 'Indien lock, chargepump op 50uA
If lock = 0 Then addr.LB = 0 'Indien geen lock, lockled uit, eindtrap uit
If lock = 1 Then addr.LB = 20 'Indien lock, lockled aan, eindtrap aan
I2CSend addr.HB '3e regel versturen
I2CSend addr.LB '4e regel versturen
I2CStop
Return

Stynus
Admin
Berichten: 2691
Gepost op zondag 11 September 2016 10:58:24 QuoteWijzig

1250 past niet in 1 byte, voor de zelfde stijl te behouden moet je dus nog een byte Ghz aanmaken, zie in de code wel niet waar ze naar de pll gestuurd worden (of is de code niet compleet?).


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
CARDAN
Lid
Berichten: 225
Gepost op zondag 11 September 2016 19:14:30 QuoteWijzig

hoi stynus

ja hoor code is compleet voor xxx als freq werkt het prima nu is normaal de freq als ik het uitrekend met een crystal van 4 mhz = 19201 maar dat lukt niet zo te zien he grtz alain

CARDAN
Lid
Berichten: 225
Gepost op zondag 11 September 2016 21:07:09 QuoteWijzig

hier een uitleg gevonden hoe je de fosc moet berekenen allemaal een beetje rar met die tsa's hihihihihi

http://www.mictronics.de/2011/06/ />

Stynus
Admin
Berichten: 2691
Gepost op maandag 12 September 2016 18:47:07 QuoteWijzig

Je kan eens proberen met van mhz een word te maken en vervolgens bij
If mhz = 108 And khz > 0 Then 'Indien 108MHz is bereikt terug naar 87,50MHz
mhz = 87
khz = 50
de max frequenties verhogen.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
« 1 [2]

Active Topics

» Mini domotica systeem
» Lengteaanslag verstekzaag
» De tuin.
» printplaat
» Show je mini projecten
» Makita BMR102
» voeding Compaq serie P...
» buggy "The end"
» Voeding voor kerstmis ...
» Audi

» Meer actieve topics

Advertenties

ElektronicaStynus

© 2004-2017 SchemaTheek
Laadtijd: 0.07911 sec.