Sari la conținut
ELFORUM - Forumul electronistilor

BASCOM


yo9hnf

Postări Recomandate

Multumesc pentru ajutor.

Nu am avut timp sa testez, dar am cumparat intre timp LCD 128x128 cu controler 6963, care este suportat de bascom.

La configurarea LCD-ului, pot configura fiecare port DB0-DB7 in parte? sa-i atribui ce pin vreau eu? am  incercat ca la LCD alfanumeric dar nu vrea, da eroare.

Link spre comentariu

Ok.

Am avut ceva timp liber azi si am montat pe breadboard, lcd+ Atmega8.

LCD http://www.tme.eu/en/Document/421eeda77f14329cf6e59f81b1699003/RG128128B1-TIW-X.pdf

 

Am incarcat un program de proba, luat de pe help bascom si nu functioneaza, arata numai pixeli aiurea.

Atasez o imagine sa vedeti, am cautat cauza si nu o gasesc, lcd este conectat corect, contrastul functioneaza, nu e de la el.

Ce parere aveti? ce poate fi?

Trebuie ceva librarie pentru LCD? Controler RA6963

 

 

Posted Image

 

 

 

$regfile = "m8def.dat"                            ' specify the used micro$crystal = 8000000                                          ' used crystal frequency$baud = 19200                                               ' use baud rate$hwstack = 32                                               ' default use 32 for the hardware stack$swstack = 10                                               ' default use 10 for the SW stack$framesize = 40                                             ' default use 40 for the frame space '-----------------------------------------------------------------'                     (c) 2001-2008 MCS Electronics'                 T6963C graphic display support demo 240 * 128'----------------------------------------------------------------- 'The connections of the LCD used in this demo'LCD pin                  connected to' 1        GND            GND'2        GND            GND'3        +5V            +5V'4        -9V            -9V potmeter'5        /WR            PORTC.0'6        /RD            PORTC.1'7        /CE            PORTC.2'8        C/D            PORTC.3'9        NC             not conneted'10       RESET          PORTC.4'11-18    D0-D7           PA'19       FS             PORTC.5'20       NC             not connected 'First we define that we use a graphic LCD' Only 240*64 supported yetConfig Graphlcd = 128 * 128 , Dataport = Portd , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6'The dataport is the portname that is connected to the data lines of the LCD'The controlport is the portname which pins are used to control the lcd'CE, CD etc. are the pin number of the CONTROLPORT.' For example CE =2 because it is connected to PORTC.2'mode 8 gives 240 / 8 = 30 columns , mode=6 gives 240 / 6 = 40 columns 'Dim variables (y not used)Dim X As Byte , Y As Byte   ClsCursor Off Wait 1    Locate 1 , 1  Lcd "MCS Electronics"Locate 2 , 1 : Lcd "T6963c support"Locate 3 , 1 : Lcd "1234567890123456789012345678901234567890"Locate 16 , 1 : Lcd "write this to the lower line" Wait 2 Cls Text End 
Link spre comentariu

'11-18 D0-D7 PADaca mai sus PA inseamna port A, pinii de date nu sunt conectati corect.Acolo unde este facuta configurarea LCD scrie Dataport=PortD, adica pinii D0-D7 trebuie conectati la portul D.

Link spre comentariu

Daca esti sigur ca toate conexiunile sunt corect facute,incearca sa dezactivezi JTAG-ul din fuse-bits.Am vazut ca tensiunea de alimentare pentru LCD trebuie sa fie cuprinsa intre 15,8 si 16,8 V, iar pentru partea logica intre 3 si 5,5V.

Editat de Elison
Link spre comentariu

Am incercat si acela, dar nu are prea mare efect, schimba ceva, dar tot nu intelegi nimic.

Am citit ca trebuie modificat si ceva in libraria glcdra6963.lib, mai concret auto-resetu este setat la 100ms,si merge pana la 1mhz,  trebuie modificat pentru a functiona la fregventa mai mare, o sa vad cum reusesc sa modific. 

 

L.E. Folosesc oscilator intern, nu cred ca este asta o problema.

Editat de costyy86
Link spre comentariu
  • 6 luni mai târziu...

Se poate ca un atmega 328tqfp sa genereze un semnal de 200-220Khz? daca da, cum reusesc sa fac ca eu nu reusesc sa il fac sa scoata nici 10khz,desi am cautat dtalii nu am gasit.

 

In codul de mai jos, umplerea se regleaza din potentiometru, eu vreau din 2 switch, la fiecare apasare de buton sa urce respectiv sa scada cu 10%.

Si ultima chestie, ce linii de comanda trebuie sa dau astfel incat atmega sa genereze o frecventa fixa, spre exemplu 5khz,

Multumesc anticipat.

$regfile = "m328pdef.dat"$crystal = 16000000$hwstack = 40$swstack = 16$framesize = 32 Config Portc.0 = InputConfig Portb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down  Config Adc = Single , Prescaler = Auto Start Adc Dim Detc As Word , Detc1 As Word  Do Detc = Getadc(0)Detc1 = Detc / 4 Pwm1a = Detc1    LoopEnd
Editat de costyy86
Link spre comentariu

E o formula care iti spune frecventa maxima PWM in functie de metoda PWM , numarul de biti , prescaler , frecventa ceasului . Din pacate nici o sansa sa obtii frecventa prea mare cu multi biti rezolutie , pentru fast pwm e ceva de genul Fpwm = Fosc / N*256 , unde N e prescalerul si 256 valoarea maxima a registrului ce vrand-nevrand trebuie sa se incrementeaze intr-o perioada de semnal pwm pentru 8 biti rezolutie ( 2^8 valori ) . Pentru putini biti cand nu trebuie sa se incrementeze pana la 256 se poate obtine ceva frecventa mai ridicata dar ordinul de marime e destul de clar ... 8MHz la 1 bit se poate obtine :limb:

Editat de Depanatoru
Link spre comentariu
  • 1 lună mai târziu...

Am probleme cu Bascom, plecand de la alta problema am prezentat-o aici: http://www.elforum.info/topic/26646-usbasp/?p=1471516Nu am mai continuat acolo ca sa nu mai poluez topicul respectiv....Am Bascom de multi ani, am avut multe variante instalate insa azi nu mai vrea, am dezinstalat si curatat registrii etc etc de mai multe si am incercat toate variantele pe care le am, am instalat si varianta demo de pe situl Bascom, culmea e ca nici aceasta nu mai merge asa ca in disperare si pana de idei cer ajutor.Ferestra Bascom se deschide totusi intr-un final dar goala, nu ma lasa sa creez nimic nou sau sa deschid fisiere create deja, chiar nu am idee ce sa-i fac...

Link spre comentariu
  • 3 luni mai târziu...

Am si eu o problema cu pwm-ul. Ceea ce vreau este sa setez din doua taste "up" si "down" pwm-ul si sa afisez valoarea de la 0 la 100%.

La ce m-am gandit pana acum

$regfile = "m8def.dat"
$crystal = 1000000

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.0

Config Timer1 = Pwm , Prescale = 1 , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

Config Pinc.4 = Input
Config Pinc.5 = Input

Set Portc.4
Set Portc.5

Dim Set_pwm As Single
Dim Setpwmstr As Integer
Dim Pwm_lcd As String * 5

Air_up Alias Pinc.4
Air_down Alias Pinc.5



Do
Home
Locate 1 , 13
Lcd "PWM"
Locate 2 , 12
Lcd Set_pwm


If Air_up = 0 Or Air_down = 0 Then
If Air_up = 0 Then Incr Set_pwm
If Air_down = 0 Then Decr Set_pwm
If Set_pwm = -1 Then Set_pwm = 100
If Set_pwm = 101 Then Set_pwm = 0
If Set_pwm = 255 Then Set_pwm = 100
'Setpwmstr = Str(set_pwm)
'Pwm_lcd = Format(setpwmstr , "000")
Waitms 180
End If




 Select Case Set_pwm
         Case 10 To 15 : Pwm1a = 40
         Case 15 To 20 : Pwm1a = 50
         Case 20 To 25 : Pwm1a = 60
         Case 25 To 30 : Pwm1a = 70
         Case 30 To 35 : Pwm1a = 80
         Case 35 To 40 : Pwm1a = 90
         Case 40 To 45 : Pwm1a = 100
         Case 45 To 50 : Pwm1a = 115
         Case 50 To 55 : Pwm1a = 130
         Case 55 To 60 : Pwm1a = 140
         Case 60 To 65 : Pwm1a = 150
         Case 65 To 70 : Pwm1a = 160
         Case 70 To 75 : Pwm1a = 170
         Case 75 To 80 : Pwm1a = 185
         Case 80 To 85 : Pwm1a = 200
         Case 85 To 90 : Pwm1a = 215
         Case 90 To 95 : Pwm1a = 230
         Case 95 To 99 : Pwm1a = 245
         Case Is >= 99 : Pwm1a = 255
         Case Else : Pwm1a = 0

      End Select
      'Pwm1b = Pwm1a


Loop
End

dar nu funcioneaza cum mi-as dori si sigur exista si alte variante mult mai simple.

Multumesc

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări