Koleżankom i Kolegom Radioamatorom, Krótkofalowcom,
Konstruktorom i Waszym Rodzinom – w tych trudnych czasach –
po dotkliwej awarii naszego forum
Pogodnego czasu po Bożym Narodzeniu,
Dosiego Nowego Roku
oraz Radosnych Trzech Króli

Życzy Zespół Home Made

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w języku C w środowisku AVR Studio4
#91
Rozumiem że u Ciebie wszystko działa OK tak?

Nie wiem jak u innych ale u mnie NIE. Połączenia takie same.

Aha , na wyświetlaczu mam 003710000_

P.S. Mam pytanie do innych kursantów, tez takie problemy występuja u Was jak u mnie były, czy tylko u mnie są to chochliki niedouczonego?
Janek SQ9JXB
Reply
#92
Za każdym razeem jak coś Ci nie działa to oprócz Pytania dawaj plik z którym masz problem jako załącznik. Ja go sobie ściągnę i mam nad czym mysleć, a tak nie wiem co tam masz.
Reply
#93
Marcin , kompilacja przebiegła bez problemu, tylko nie ma zmiany częstotliwości.
Połączenia takie jak u Ciebie.

W załączniku pliki



Attached Files
.zip   nowy.zip (Size: 16.65 KB / Downloads: 957)
Janek SQ9JXB
Reply
#94
Ten plik, który umieściłeś ostatnio, z której lekcji pochodzi ?
Reply
#95
(04-02-2012, 10:32)SQ9JXB Wrote: Rozumiem że u Ciebie wszystko działa OK tak?

Nie wiem jak u innych ale u mnie NIE. Połączenia takie same.

Aha , na wyświetlaczu mam 003710000_

P.S. Mam pytanie do innych kursantów, tez takie problemy występuja u Was jak u mnie były, czy tylko u mnie są to chochliki niedouczonego?

Mnie "małpowanie" Marcina wychodzi OK ale gorzej z zrozumieniem i napisaniem samemu danej lekcji,no ale może to kiedyś załapię
Janek sp5iwi
Reply
#96
Quote:Ten plik, który umieściłeś ostatnio, z której lekcji pochodzi ?

Z lekcji 11 i zmałpowanego kodu od Ciebie(obsługa 2 przycisków PC7 i PC6) krok 1 w dół i jeden w górę.
Janek SQ9JXB
Reply
#97
Nie prawda. Umieściłeś pliki z lekcji 10 wraz z poprawkami funkcji wys_freq()
Sprawdź sam.
Reply
#98
Faktycznie nie zapisane.

Teraz wczytane wszystko i działa, ale działanie przycisków jest ciekawe.Musze nacisnąć i lekko przechylić w prawo aby działały bez problemu.

Dobra, więcej nie będę zgłaszał uwag.
Janek SQ9JXB
Reply
#99
Możesz pytać ... krzywdy mi nie robisz ... wszyscy pytajcie i się nie czajcie z tym, bo po to jest ten kurs, nie będe go prowadził wiecznie więc nie odkładajcie pytań na potem
Mam nadzieje że te dziwne umiejscowienie nawiasów klamrowych w ostatniej lekcji nie sprawiły wam kłopou.
Code:
if((PINC&0b01000000)==0)
         { frequency-=krok; }
powyższy kod oczywiście można zapisac tak jak poniższy i to jest to samo
Code:
if((PINC&0b01000000)==0)
{
    frequency-=krok;
}
ale można tez tak:
Code:
if ( ( PINC & 0b01000000 ) == 0 )
         {


frequency-=krok; }
wszystkie te zapisy dla kompilatory są jednakowe.
Trochę kiepsko że nie mogę już sam wyedytować tego posta tylko muszę moderatora prosić.
Lekcja 13 Pewnie zauważyliście, że można przekręcić licznik częstotliwości "tak jakby poniżej zera" więc konieczne są poprawki, której będą trzymać w ryzach zakres częstotliwości - pomiędzy 1MHz a 180MHz.
Przedstawiam tu fragmenty piku main.c (jest on do pobrania jako załącznik na dole) wraz z moim wolnym tłumaczeniem Smile
Code:
#ifndef F_CPU
#define F_CPU 16000000
#endif
#jeśli F_CPU nie jest zdefiniowane nigdzie indziej to:
#zdefiniuj każde wyrażenie F_CPU jako 16000000
#koniec warunku [b]ifndef F_CPU[/] //nie wiem jak to dobrze przetłumaczyć. Powyższy kod sam sprzwdza czy już zdefiniowaliśmy częstotliwość w menu "configuration options" jesli nie to definiuje prędkość Atmegi na 16MHz.
Code:
if((PINC&0b01000000)==0)
{
    if((frequency-krok>999999)&(frequency-krok<180000000))
    {
        frequency-=krok;
    }
}
Jeśli (na porcie C, na wyprowadzeniu PC6 jest stan niski ) to wykonaj:
{

jeśli ( ( zm. frequency - zm. krok jest większe od 999999) lub ( zm. frequency - zm. krok jest mniejsze od 180000000 ) )
{

zmniejsz zm. frequency o zm. krok;
}
} [/code]
Dodatkowo zaznaczyłem kolorami nawiasy które należą do odpowiadających im instrukcji.
Code:
if((PINC&0b10000000)==0)
{    
    if(frequency+krok<180000000)
    {
        frequency+=krok;
    }
}
Powyższy kod oznacza:
Jeśli (na porcie C, na wyprowadzeniu PC7 jest stan niski ) to wykonaj:
{

jeśli ( ( zm. frequency + zm. krok jest mniejsze od 180000000 ) ) to wykonaj :
{

zm. frequency zwieksz o zm. krok;
}
}
Na razie to będzie koniec z problemem wyświetlania kroku i częstotliwości - nie jest to może najpiękniejsze i najczytelniejsze ale działające i wystarczające (potem będziemy upiększać i porządkować to co się ma wyświelać i jak).
Na następnej lekcji przejdę do zagadnienia jakim jest komunikacja z układem AD9951 - syntezerem DDS.


Attached Files
.zip   nowy.zip (Size: 4.67 KB / Downloads: 958)
Reply
Ad. lekcja3

Witam!

Trochę jestem spóźniony.Angry

Nie bardzo rozumiem jak działa wyrażenie wewnątrz pętli, dalaczego dioda "mruga"??

No i jak się wkleja takie ramki z kodem jak powyżej??


Attached Files
.txt   lcd.c2.txt (Size: 1.51 KB / Downloads: 1,002)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)