nico_2010 Postat Decembrie 17, 2010 Partajează Postat Decembrie 17, 2010 Salut ywar2!Ca simulator folosesc BASCOM si un Proteus Lite (are limitari), dar ce am afirmat cu privire la "secunda" este rezultatul unor incercari pe placa mea de "dezvoltare" de care unii mai rad! Link spre comentariu
ywar2 Postat Decembrie 17, 2010 Partajează Postat Decembrie 17, 2010 OK NICO, merci fain de info, am sa caut si eu Proteus. Pe curind!!! Link spre comentariu
Vizitator andreflo Postat Decembrie 19, 2010 Partajează Postat Decembrie 19, 2010 Salut,Sunt incepator , se poate simplifica urmatoarea secventa de cod:Select Case Fade Case 1 :Locate 2 , 1Lcd Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 2 :Locate 2 , 1Lcd Chr(0) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 3 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 4 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 5 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 6 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(1) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 7 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 8 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 9 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 10 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 11 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 12 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) Case 13 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) Case 14 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(1) ; Chr(0) ; Chr(0) Case 15 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(1) ; Chr(0) Case 16 :Locate 2 , 1Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(2) ; Chr(3) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(1) End SelectI2csend &H88 , Att_rfI2csend &H88 , Att_lfI2csend &H88 , Att_rrI2csend &H88 , Att_lrEnd SubMultumesc anticipat Link spre comentariu
ywar2 Postat Decembrie 19, 2010 Partajează Postat Decembrie 19, 2010 Salut. Uite la ce m-am gindit eu: faci un tabel care contine toate secventele pe care doresti sa le afisezi, in functie de valoarea lui Fade calculezi unde se afla indexul celor 16 caractere si apoi afisezi urmatoarele 16 locatii. Uite un exemplu de cod: DDim Fade As ByteDim X As ByteDim Y As ByteDim Z As ByteLocate 2 , 1 'pozitioneaza cursorul in pozitia de startDecr Fade 'toate valorile lui FADE trebuie sa fie in intervalul 0...15Z = Fade * 16 'calculeaza pozitia caracterelor din tabel ce urmeaza a fi afisate 'For X = 0 To 15 'urmatoarele 16 caractere vor fi afisate Y = Lookup(z , Tabel) 'se identifica caracterul Lcd Chr(y) 'se afiseaza caracterul Incr Z 'se selecteaza caracterul urmatorNext X.....EndTabel:Data 1 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 1 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 1 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 1 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 1 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 1 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 1 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 1 , 0 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 1 , 0 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 1 , 0 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 1 , 0 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 1 , 0 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 1 , 0Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 1Sau altul, ideea mi-a venit in timp ce iti scriam exemplul de mai sus: Locate 2 , 1 'pozitioneaza cursorul in pozitia de start Decr Fade 'toate valorile lui FADE trebuie sa fie in intervalul 0...15 ' For X = 0 To 15 'urmatoarele 16 caractere vor fi afisate Y = Lookup(z , Tabel) 'se identifica caracterul If Fade = X Then 'cind pozitia lui FADE este egala cu cea selectata in tabel Y = Y * 1 'se calculeaza valoarea ce urmeaza a fi afisata '1 este valoarea care se deplaseaza If Y = 0 Then Y = 1 'daca rezultatul este 0 atunci el va devenii 1 End If Lcd Chr(y) 'se afiseaza caracterul Incr Z 'se selecteaza caracterul urmator Next X....EndTabel:Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 Link spre comentariu
yo9hnf Postat Decembrie 22, 2010 Autor Partajează Postat Decembrie 22, 2010 @nico_2010 O sa incerc maine programul pus de tine. Iti multumesc ! Pana una-alta, iar ma freaca DS18b20. Am "mixat" mai multe programe gasite pe net, pana mi-a iesit progamul de mai jos. Pe langa faptul ca nu inteleg cum pot afisa doua temperaturi de la doi senzori in acelasi timp pe LCD, pe linia 1 senzor 1 iar pe linia 2 senzor 2, mai am o problema.... Am incercat sa implementez functiile de minim si maxim pentru temperatura masurata. Probleme : 1. De ce min>W face practic min ? 2. Pe afisaj imi apare pe linia 2, la fiecare senzor : Min : 0 Max: 23 (de ex). De ce MIN mi-l ia nul? Va multumesc tuturor ! PS : Programul e aici $regfile "m32def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Deflcdchar 0 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32 ' replace ? with number (0-7) 0 pentru GRAD CELSIUS Declare Sub Convallt ' Convert T on ALL sensors Declare Sub Meas_to_cel(offset As Byte) Declare Sub Temp_to_decicel Declare Sub Disp_temp(cnt As Byte , Offset As Byte) ' Up to 8 devices - each having an 8 byte ROMID Const Max1wire = 8 Dim Dsid(64) As Byte ' Dallas ID 64bit inc. CRC Dim Sc(9) As Byte ' scratch pad Dim Cnt1wire As Byte ' Number of 1-wire devices found Dim Cel As Integer Dim Cel_frac_bit As Byte Dim Subzero As Byte Dim Temp As Integer 'Temp variables Dim B As Byte Dim B1 As Byte Dim B2 As Byte Dim I As Byte Dim W As Word '----------------RADU Dim Min1 As Word Dim Max1 As Word Dim Min2 As Word Dim Max2 As Word '----------------RADU Const Ds18b20_conf_reg = 4 ' constant to convert the fraction bits to cel*(10^-4) Const Ds18x20_fracconv = 625 ' DS18x20 ROM ID Const Ds18s20_id = &H10 Const Ds18b20_id = &H28 ' COMMANDS Const Ds18x20_convert_t = &H44 Const Ds18x20_read = &HBE Const Ds18x20_write = &H4E Const Ds18x20_ee_write = &H48 Const Ds18x20_ee_recall = &HB8 Const Ds18x20_read_power_supply = &HB4 'LCD config 'Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 'Config Lcd = 16 * 1a Config 1wire = Portd.4 ' DS1820 on Port B.4 (mega8 pin 18) Cursor Off Cls Lcd "1-wire DS18x20" Wait 1 Cls ' Gather ROM ID for all 1-wire devices Cnt1wire = 1wirecount() If Cnt1wire > Max1wire Then Cnt1wire = Max1wire End If B = 1 Dsid(b) = 1wsearchfirst() For I = 1 To Cnt1wire B = B + 8 Dsid(b) = 1wsearchnext() Next ' Show what we found on the bus B1 = 1 B2 = 8 For I = 1 To Cnt1wire Cls If Dsid(b2) = Crc8(dsid(b1) , 7) Then Lcd "CRC OK sensor " ; I Waitms 500 Cls Lcd "ROM ID " For B = B1 To B2 Lcd Hex(dsid(b)) Next Else Lcd "CRC BAD sensor " ; I End If Wait 1 B1 = B1 + 8 B2 = B2 + 8 Next ' Monitor temperature sensors Do Convallt Waitms 750 B = 1 For I = 1 To Cnt1wire If Dsid(b) = Ds18s20_id Or Dsid(b) = Ds18b20_id Then ' Only process TEMP sensors 1wverify Dsid(b) 'Issues the "Match ROM " If Err = 1 Then Cls Lcd "18x20 not on bus" 'where did it go? Elseif Err = 0 Then 1wwrite Ds18x20_read Sc(1) = 1wread(9) If Sc(9) = Crc8(sc(1) , 8) Then Call Disp_temp(i , B) If I < Cnt1wire Then ' if more 1-wire devices. Wait 1 ' SE SETEAZA TIMPUL DE AFISARE PT TEMP 1 End If End If End If End If B = B + 8 Next Loop End 'Makes the Dallas "Convert T" command on the 1w-bus configured in "Config 1wire = Portb. " 'WAIT 200-750 ms after issued, internal conversion time for the sensor 'SKIPS ROM - so it makes the conversion on ALL sensors on the bus simultaniously 'When leaving this sub, NO sensor is selected, but ALL sensors has the actual 'temperature in their scratchpad ( within 750 ms ) Sub Convallt 1wreset ' reset the bus 1wwrite &HCC ' skip rom 1wwrite Ds18x20_convert_t End Sub ' output is: ' - cel full celsius ' - fractions of celsius in millicelsius*(10^-1)/625 (the 4 LS-Bits) ' - subzero =0 positiv / 1 negativ Sub Meas_to_cel(offset As Byte) Dim Meas As Word Meas = 0 Meas = Makeint(sc(1) , Sc(2)) ' 18S20 is only 9bit upscale to 12bit If Dsid(offset) = Ds18s20_id Then Meas = Meas And &HFFFE Shift Meas , Left , 3 B1 = 16 - Sc(6) B1 = B1 - 4 Meas = Meas + B1 End If If Meas.15 = 1 Then Subzero = 1 ' convert to +ve, (two's complement)++ Meas = Meas Xor &HFFFF Incr Meas Else Subzero = 0 End If If Dsid(offset) = Ds18b20_id Then B1 = Sc(ds18b20_conf_reg) ' clear undefined bit for != 12bit If B1.5 = 1 And B1.6 = 1 Then ' 12 bit ' nothing Elseif B1.6 = 1 Then ' 11 bit Meas = Meas And &HFFFE Elseif B1.5 = 1 Then '10 bit Meas = Meas And &HFFFC Else ' 9 bit Meas = Meas And &HFFF8 End If End If Cel = Meas Shift Cel , Right , 4 Cel_frac_bit = Meas And &HF End Sub ' input: cel, cel_frac_bit, subzero ' output: temp (as decicelsius) ' ie 289 = 28.9C Sub Temp_to_decicel Temp = Cel_frac_bit * Ds18x20_fracconv Temp = Temp / 1000 Cel = Cel * 10 Temp = Temp + Cel If Subzero = 1 Then Restore Rounding For B1 = 1 To 8 Read B2 If Cel_frac_bit = B2 Then Incr Temp Exit For End If Next End If End Sub ' Display the temperature ' INPUT: temp Sub Disp_temp(cnt As Byte , Offset As Byte) Call Meas_to_cel(offset) Call Temp_to_decicel Cls '----------------- W = Temp / 10 B1 = Temp Mod 10 ' Lcd W ; "." ; B1 ' Lcd Chr(0) ; "C" If I = 1 Then Locate 1 , 1 ' MODIFICAT DE MINE Lcd "Temp In:" ; " " ; W ; "." ; B1 ; Chr(0) ; "C" If Min1 > W Then Min1 = W If Max1 < W Then Max1 = W Locate 2 , 1 Lcd "Min :" ; Min1 ; " Max:" ; Max1 End If If I = 2 Then Locate 1 , 1 Lcd "Temp OUT:" ; " " ; W ; "." ; B1 ; Chr(0) ; "C" If Min2 > W Then Min2 = W If Max2 < W Then Max2 = W Locate 2 , 1 Lcd "Min :" ; Min2 ; " Max:" ; Max2 End If '----------------- 'Lcd "TEMP " ; Cnt ; " " 'ASA ERA ORIGINAL ' If Subzero = 1 Then ' ASA ERA ORIGINAL ' Lcd "-" ' Else ' Lcd "+" ' End If '' W = Temp / 10 ' B1 = Temp Mod 10 ' Lcd W ; "." ; B1 ' Lcd Chr(0) ; "C" '----------------- End Sub Rounding: Data 1 , 3 , 4 , 6 , 9 , 11 , 12 , 14 Link spre comentariu
yo9hnf Postat Ianuarie 11, 2011 Autor Partajează Postat Ianuarie 11, 2011 yo9hnf, daca inca n-ai renuntat la idee hai sa facem impreuna cu alti elforumisti interasati un proiect pentru un ceas cu uC AVR si afisaj cu 7.1 segmente cu LED-uri . Vrei?Nu am renuntat.....si nu pentru ca am nevoie de un ceas, ci pentru ca inca nu e "rezolvata" problema. Am gasit pe un site sovietic un program care vad ca merge pe Anod Comun, dar problema e ca imi afiseaza caracterele aiurea. http://electronics.sawfish.ru/softovye-chasy-na-mege-8-ochen-prostye/#more-86 ' Пример часов которые отображают часы и минуты на семисегментном ' четырехсимвольном светодиодном индикаторе ' прога для ознакомления, работает 100% ' выставленные фюзы (в понипроге стоят галки на):CKOPT,BOOTSZ1,BOOTSZ0,SUT1,SUT0,CKSEL3,CKSEL1,CKSEL0 ' Кварц выдрал из маленького тетриса с часами, думаю также подойдет из любых кварцевых наручных/настенных часов 'насчет точности - терпения больше 2х дней не хватило, идут точно, секунда в секунду. 'e-mail [email protected] $regfile = "m8def.dat" ' мега8 $crystal = 8000000 Config Portb = Output , Portd = Output , Config Pinc.3 = Input 'конфигурируем порты на выход Portc.5 = 1 Portc.4 = 1 Dim I As Byte , X As Byte , Y As Byte , Temp As Integer , Bn(10) As Byte , Cifri(5) As Integer 'задаем всякие переменные и масивы ' 'Dotx As Integer Restore Dta ' говорим из какой таблици нужно заносить данные в масив For I = 1 To 10 ' начало цикла Read Bn(i) ' поочериде заносим ячейки из таблици в масив Next ' конец цикла Config Clock = Soft ' конфигурируем совтовые часы _sec = 0 : _min = 0 : _hour = 0 ' задаем конкретные значения времени, с которого часы будут начинать считать при включении питания Config Timer0 = Timer , Prescale = 8 ' конфигурируем таймер 0 чтоб потом на него повесить алгоритм отображения цифр Config Timer1 = Counter , Edge = Falling , Prescale = 1 ' конфигурируем таймер 1 на подсчет импульсов на кварце, припаянного к Xtal1 Xtal2 на 32768 гц БЕЗ КОНДЕРОВ! On Timer0 Pulse ' назначаем подпрограмму, которая будет запускатся по переполнению 1го таймера Enable Interrupts 'разрешаем прерывания Enable Timer0 Config Debounce = 30 'разрешаем таймер0 ' начало основного цикла Do Debounce Pinc.4 , 0 , Minuti , Sub Debounce Pinc.5 , 0 , Chasi , Sub Temp = _hour * 100 ' "складываем" часы с минутами так чтобы получилось 4хзначное число тоесть 8часов+59мин = 859 Temp = Temp + _min For I = 1 To 4 ' цикл разбиения склеенных часов с минутами на цифры и занесения каждой в таблицу масива Cifri(i) = Temp Mod 10 ' берем последнюю цифру (9) If Cifri(i) = 0 Then ' Cifri(i) = 10 ' Goto T ' End If ' Temp = Temp - Cifri(i) ' вычитаем из часов/минут последнюю цифру 859-9=850 T: ' Temp = Temp / 10 ' отбрасываем последний ноль 859/10=85 Next 'возвращаемся к началу цикла и заносим следующюю цифру в масив ' Dotx = _sec Mod 2 Loop 'конец основного цикла End ' ' Pulse: ' подпрограмма прерываний таймера0 'If Pinc.3 = 0 Then 'Else Incr X ' увеличиваем х на единицу, для выбора нужных цифр из таблици Portb = &HFF ' гасим индикатор Portd = Bn(cifri(x)) Set Portd.2 'If Dotx = 0 Then Reset Portd.2 Else Set Portd.2 ' подаем на индикатор цифру из масива Bn с номером cifri(x) Y = X - 1 ' считаем какую конкретно цифру, из 4х нужно сейчас зажечь Reset Portb.y ' зажигаем нужную цифру под номером игрик If X = 4 Then X = 0 ' обнуляем х при достижении его величины 4 'End If Return ' возвращаемся на место откуда прервали программу Dta: ' таблица с данными о цифрах зажигает по порядку : 1234567890 Data &H88 , &HB3 , &HBA , &HD8 , &H7A , &H7B , &HA8 , &HFB , &HFA , &HEB ' Minuti: Incr _min If _min = 60 Then _min = 00 Incr _hour End If If _hour > 23 Then _hour = 00 _sec = 00 Return ' Chasi: Incr _hour If _hour > 23 Then _hour = 00 Return Link spre comentariu
nico_2010 Postat Ianuarie 12, 2011 Partajează Postat Ianuarie 12, 2011 Salut yo9hnf!Stii ce ma intriga mai mult?Faptul ca desi am postat softul functional pentru AVR al ceasului propus de tine, nu ai mai spus nimic cu privire la testarea lui!Acum vii cu o alta propunere (tot de ceas), dar facand aceeasi greseala in ceea ce priveste comanda segmentelor!Credeam ca topicul a fost deschis pentru a-i invata si pe altii despre programarea AVR folosind compiler-ul BASCOM si sincer ma asteptam sa ne impartasim unii altora experienta dobandita prin experimentele facute cu soft-ul mentionat, insa constat ca m-am inselat. Link spre comentariu
yo9hnf Postat Ianuarie 12, 2011 Autor Partajează Postat Ianuarie 12, 2011 Salut yo9hnf!Stii ce ma intriga mai mult?Faptul ca desi am postat softul functional pentru AVR al ceasului propus de tine, nu ai mai spus nimic cu privire la testarea lui!Acum vii cu o alta propunere (tot de ceas), dar facand aceeasi greseala in ceea ce priveste comanda segmentelor!Va salut !Asa este si imi cer scuze pentru asta ! Mai demult am compilat softul pus de dvs. si tot nu mi-a mers. De atunci m-am luat cu altele si am uitat complet.Aseara am gasit programul rusesc surfand de colo-colo pe net. Recunosc, am uitat complet de ce mi-ati zis dvs. Am compilar iar programul si tot nu merge. Am modificat si tabela...am pus-o pe cea din programul rusesc si tot degeaba.Porturile folosite au fost :-PORTB.0-PORTB.3 - digiti-PORTC.0-PORTC.6 - segmentele-PORTD.0-PORTD.4-butoaneCiudat mi s-a parut faptul ca daca leg un fir care ar fi trebuit sa se duca la digiti, la masa, mi se aprinde afisajul respectiv. Link spre comentariu
nico_2010 Postat Ianuarie 12, 2011 Partajează Postat Ianuarie 12, 2011 Dar ai dezactivat JTAG din fusebits?este o greseala frecventa!te intreb pentru ca am verificat pe placa de test ambele variante (anod comun si catod comun) si-curios lucru - functioneaza!!!Programul este cel postat in ambele variante. Link spre comentariu
yo9hnf Postat Ianuarie 13, 2011 Autor Partajează Postat Ianuarie 13, 2011 @nico_2010Initial lasasem uC-ul decat cu SPIEN bifat, deci cu Fuse low : FFh, High : DF .Am bifat si JTAG, si asta rezulta low :FFh, high : 9Fh si tot nu merge.Am setat FUSEBITii si cum erau initial, adica low : E1h, high 99h si tot nimic. Link spre comentariu
nico_2010 Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 Salut yo9hnf!Te rog listeaza programul EXACT asa cum il ai tu si, de asemenea, fuse bits!Mai am o intrebare: ai dezactivat software "analog comparators"?Este anormal ce se intampla, mai mult ca sigur faci erori! Link spre comentariu
iulian2010 Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 Voltmetru 25Vmax cu LEDSalut,Am simulat in ISIS proiectul Voltmetru 25Vmax cu LED si nu functioneaza. A incercat cineva sa realizeze acest proiect sau sa-l simuleze in ISIS? Link spre comentariu
vasile eugen Postat Ianuarie 15, 2011 Partajează Postat Ianuarie 15, 2011 Voltmetru 25Vmax cu LEDSalut,Am simulat in ISIS proiectul Voltmetru 25Vmax cu LED si nu functioneaza. A incercat cineva sa realizeze acest proiect sau sa-l simuleze in ISIS?daca te referi la cel cu atmega 8 ,si 4 digiti ,este functionabil am incercat ca fapt divers,in proteus nu merg toate schemele Link spre comentariu
iulian2010 Postat Ianuarie 15, 2011 Partajează Postat Ianuarie 15, 2011 daca te referi la cel cu atmega 8 ,si 4 digiti ,este functionabil am incercat ca fapt divers,in proteus nu merg toate schemeleMultumesc pentru raspuns.Eu nu prea am lucrat cu 7segment display. As vrea sa folosesc adc0 pentru a afisa pe 7 segment display cu 8 digiti o valoare. De ex. o valoare cuprinsa -9999.999 si 9999.999 unde referinta 0000.000 ar fi 2,5V. A realizat cineva vreun proiect asemanator? Link spre comentariu
mishu_g Postat Ianuarie 26, 2011 Partajează Postat Ianuarie 26, 2011 Buna ziua Are cineva idee cum pot utiliza circuitul D16311GC (datasheet http://www.datasheetcatalog.com/datashe ... -AB6.shtml ) care este o interfata pentru tastatura/display VFD ? De fapt nu prea stiu cum sa incep, datasheet-ul pare destul de convingator insa chiar nu imi dau seama cum trebuie facuta comnicatia seriala cu ATMega 16 si cum sa ii scriu programul (in BASCOM fireste). Am mai multe astfel de circuite recuperate impreuna cu displayurile VFD din videorecordere si as vrea sa le folosesc (chiar daca unii vor spune ca nu merita, ca lcd-urile sunt foarte ieftine acum bla bla). Multumesc oricui da o mana de ajutor Mihai Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum