|
Forum elektronikov Forum študentov elektronike
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
luka Študent
Pridružen/-a: 10.11. 2008, 21:32 Prispevkov: 296 Kraj: Ig
|
Objavljeno: 09 Mar 2009 20:46 Naslov sporočila: Vaja 2 |
|
|
Še druga vaja, komentarji zelo dobrodošli:
Koda: |
1. #include "init.h"
2. char *lcd_string;
3. void lcd_driver_1();
4.
5. void print_settings()
6. {
7.
8. char niz[33];
9. int m = (PLLSTAT & msel) + 1;// prebere m iz pllstat
10. int p = (PLLSTAT & psel) >> 5;
11. int n = VPBDIV;
12. p = p + 1;
13. if(p == 3) p = 4;
14. if(p == 4) p = 8;
15.
16.
17. if(VPBDIV == 0) n=4;
18.
19. int fosc = 12, fclk = m*fosc , fcco=2*p*fclk, fvpb=fclk/n;
20. strcpy(niz, "Fclk= MHz Fcco= MHz ");
21. niz[5]= fclk / 10 + '0';
22. niz[6]= fclk % 10 + '0';
23. niz[21]= fcco / 100 + '0';
24. niz[22]= (fcco % 100) / 10 + '0';
25. niz[23]= fcco % 10 + '0';
26
27. lcd_string = niz;
28. lcd_driver_1();
29. }
30. void start_up()
31. {
32. int ready = 1, clk = 12, vpb = cclk;
33. init(clk,vpb,0xffffffff, 0x00000000,0);
34. while(1)
35. {
36. int keys = get_keys(); //se vpraöa če so tipke pritisnjene
37. if(keys)
38. {
39. if(ready)
40. {
41. ready = 0;
42. if(keys & T0)// preveri prvo tipko če je prtisnjena
43. {
44. if(clk < 60) clk = clk + 12; //poveča frekvenco za 12MHz
45. init(clk, vpb, 0xffffffff, 0x00000000,0);
46. }
47.
48. if(keys & T1)// preveri drugp tipko če je prtisnjena
49. {
50. if(clk > 12) clk = clk - 12;// zmanjöa frekvenco za 12MHz
51. init(clk, vpb, 0xffffffff, 0x00000000,0);
52. }
53.
54.
55. if(keys & T2)// preveri tretjo tipko če je prtisnjena
56. {
57. if(vpb == cclk_2) vpb = cclk_4;
58. if(vpb == cclk) vpb = cclk_2;
59. init(clk, vpb, 0xffffffff, 0x00000000,0);
60. }
61.
62. if(keys & T3)// preveri cetrto tipko če je prtisnjena
63. {
64. if(vpb == cclk_2) vpb = cclk;
65. if(vpb == cclk_4) vpb = cclk_2;
66. init(clk, vpb, 0xffffffff, 0x00000000,0);
67. }
68. print_settings();
69. }
70. else ready = 1;
71. }
72. }
73. }
74. void lcd_driver_1()
75. {
76. int i;
77. lcd_write_comm(DDRAM | 0x00);
78. for(i = 0; i < 16; i++) lcd_write_data(lcd_string[i]);
79. lcd_write_comm(DDRAM | 0x40);
80. for(; i < 32; i++) lcd_write_data(lcd_string[i]);
81. }
|
Nazadnje urejal/a luka 21 Mar 2009 19:26; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
požigalec Študent
Pridružen/-a: 13.01. 2009, 20:32 Prispevkov: 145 Kraj: Ljubljana
|
Objavljeno: 15 Mar 2009 23:11 Naslov sporočila: |
|
|
Zelo pregledno si spisal program, ampak, tako kot moj, ne deluje najbolje. |
|
Nazaj na vrh |
|
|
luka Študent
Pridružen/-a: 10.11. 2008, 21:32 Prispevkov: 296 Kraj: Ig
|
Objavljeno: 16 Mar 2009 19:03 Naslov sporočila: |
|
|
požigalec je napisal/a: |
Zelo pregledno si spisal program, ampak, tako kot moj, ne deluje najbolje. |
Misliš zardi preklopov, ko tipko pritisneš? |
|
Nazaj na vrh |
|
|
požigalec Študent
Pridružen/-a: 13.01. 2009, 20:32 Prispevkov: 145 Kraj: Ljubljana
|
Objavljeno: 16 Mar 2009 22:42 Naslov sporočila: |
|
|
64. in 65. vrstico moraš po mojem zamenjati, iz istih razlogov kot si to naredil z 57. in 58. vrstico.
Si naredil 3. vajo 2 primer? |
|
Nazaj na vrh |
|
|
luka Študent
Pridružen/-a: 10.11. 2008, 21:32 Prispevkov: 296 Kraj: Ig
|
Objavljeno: 17 Mar 2009 21:59 Naslov sporočila: |
|
|
Mislim da ni treba zamenjat, zato ker frekvenco povečujem in je faktor deljenja na začetku majhen potem pa večji. Saj zdi se mi.
Nisem drugega dela 3.vaje naredil. |
|
Nazaj na vrh |
|
|
požigalec Študent
Pridružen/-a: 13.01. 2009, 20:32 Prispevkov: 145 Kraj: Ljubljana
|
Objavljeno: 19 Mar 2009 16:16 Naslov sporočila: |
|
|
Praviš, da ne? A niso cclk, cclk_2 in cclk_4 faktorji deljenja ure?
Če sam prav razumem se ti v zanki po pritisku tipke T3 tako cclk kot cclk_2 nastavita na vrednost cclk_4. To po mojem ni v redu. |
|
Nazaj na vrh |
|
|
luka Študent
Pridružen/-a: 10.11. 2008, 21:32 Prispevkov: 296 Kraj: Ig
|
Objavljeno: 21 Mar 2009 19:27 Naslov sporočila: |
|
|
Sem popravil. Ti je vredu? |
|
Nazaj na vrh |
|
|
požigalec Študent
Pridružen/-a: 13.01. 2009, 20:32 Prispevkov: 145 Kraj: Ljubljana
|
Objavljeno: 21 Mar 2009 22:14 Naslov sporočila: |
|
|
Ne vem če je v redu. To sem vprašal tebe, ki ti gre, kot vidim, programiranje dobro od rok. |
|
Nazaj na vrh |
|
|
luka Študent
Pridružen/-a: 10.11. 2008, 21:32 Prispevkov: 296 Kraj: Ig
|
Objavljeno: 21 Mar 2009 22:51 Naslov sporočila: |
|
|
požigalec je napisal/a: |
Ne vem če je v redu. To sem vprašal tebe, ki ti gre, kot vidim, programiranje dobro od rok. |
Ne gre mi tok dober, koker mogoče izgleda. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu
|
|