Skocz do zawartości

Turboasm

Użytkownicy
  • Zawartość

    31
  • Rejestracja

  • Ostatnio

Wszystko napisane przez Turboasm

  1. Jak zrealizować pomiar czasu pomiedzy impulsami ? Dodam że impulsy są zbierane z czujnika indukcyjnego zamocowanego nad kołem zembatym z około 100 zębami. Zależy mi na bardzo dynamicznym pomiarze gdyż zliczanie impulsów w czasie nie zdaje egzaminu gdyż silnik zmienia prędkość obrotową bardzo dynamicznie od 500 - 7000 obrotów na minutę. Nie musi być to dokładne nie co 1 obr/m a np 100 200. Czy w bascomie intrukcja PULSEIN dała by radę czy moze znajdzie sie jakies inne rozwiązanie ?
  2. Attiny13 pracuje na 9.6 MHz na 100%
  3. Jak zrobic żeby program dzialał szybciej ? Zliczam impulsy włącznikiem hallotronowym. Program działa z opóźnieniem. $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portb.6 , Db5 = Portd.3 , Db6 = Portd.2 , Db7 = Portd.1 , E = Portb.7 , Rs = Portd.7 Config Lcd = 16 * 2 Dim Wynik As Long Config Timer0 = Counter , Edge = Rising Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Start Timer1 Cls Do Timer0 = 0 Start Timer0 Waitms 500 Stop Timer0 Wynik = Timer0 * 120 Cls Lcd Wynik ; " obr/min" Cursor Off Pwm1a = Wynik / 27 Pwm1b = 255 - Pwm1a Loop End po prostu program nie może zdążyć za silnikiem. Da sie to w jakiś inny sposób zrealizować ?
  4. dzięki za pomoc ale pozostaje mi tylko problem który licznik zaprząc do zadania. Czy timer1 do zliczania impulsów czy timer2 ?
  5. Aby nie zakładać nowego tematu odgrzewam ten. Jak rozwiązać problem aby po wciśnięciu przycisku zmienna X została zapamiętana w eeprom ( P ). $regfile = "attiny13.dat" $crystal = 1200000 Config Pinb.0 = Output Config Pinb.3 = Input Portb.3 = 1 Config Pinb.4 = Input Portb.4 = 1 Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down Start Timer0 Dim X As Byte Dim P As Eram Byte X = 50 Do If Pinb.4 = 0 Then Waitms 10 X = X + 10 End If If Pinb.3 = 0 Then Waitms 10 P = X End If Pwm0a = X Loop End Aby program po włączeniu zasilania nie wracał do ustawienia X = 50.
  6. Czyli tą zmianną bym musiał zerować po każdym przejściu programu. Jakoś inaczej jeszcze da radę to zrobić ?
  7. Może zapytam inaczej. Czy poniższy kod jest poprawny ? Chodzi o to żeby było zapętlone select case żeby na bieżąco zmieniało wypełnienie pwm w zależności od obrotów. $crystal = 4000000 $regfile = "m8def.dat" Dim Wynik As Long Config Timer2 = Counter , Edge = Rising Config Pinb.1 = Output Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down Cls : Lcd "Obrotomierz" : Wait 1 Do Start Timer1 Timer2 = 0 Start Timer2 Wait 1 Stop Timer2 Wynik = Timer2 * 60 Cls Lcd "P: " ; Wynik ; " obr/min" Cursor Off Select Case Wynik Case 0 To 1000: Do Pwm1a = 250 Pwm1b = 0 Loop Case 1001 To 2000: Do Pwm1a = 220 Pwm1b = 35 Loop Case 2001 To 3000: Do Pwm1a = 190 Pwm1b = 70 Loop Case 3001 To 4000: Do Pwm1a = 160 Pwm1b = 105 Loop Case 4001 To 5000: Do Pwm1a = 90 Pwm1b = 180 Loop Case 5001 To 6000: Do Pwm1a = 30 Pwm1b = 210 Loop Case 6001 To 7000: Do Pwm1a = 0 Pwm1b = 250 Loop End Select Loop End
  8. Mam kod obrotomierza: $crystal = 4000000 $regfile = "m8def.dat" Dim Wynik As Long Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.6 , E = Portd.1 , Rs = Portd.0 Config Timer1 = Counter , Edge = Rising Cls : Lcd "Obrotomierz" : Wait 1 Do Timer1 = 0 Start Timer1 Wait 1 Stop Timer1 Wynik = Timer1 * 60 Cls Lcd "P: " ; Wynik ; " obr/min" Cursor Off Loop End Pytania: Chciałbym zmodyfikować program aby w zależności od obrotów zmianiało się wypełnienie impulsów PWM. Czy rolę licznika w programie może pełnić timer2 a Timer1 wykorzystać jako 2 kanałowy PWm ? Jak zrobić aby zmieniał się płynnie kolor diody RGB z niebieskiego na czerwony w zakresie obrotów np. 1000 - 7000 ?
  9. jednak drgania styków były przyczyną złego działania. Dzieki za pomoc.
  10. który przycisk to już bez różnicy oba tak samo. między 1 a 15 ms jest różnica widoczna
  11. wpisywałem program do procesora. i mam do PC5 podłączoną diodę przez rezystor 100ohm a do pc3-4 przyciski zwierające do masy. Program powoduje albo stałe świecenie diody lub po naciśnięciu przycisku ( pare razy ) zaskakuje po pewnym czasie.
  12. tylko że chodzi mi o zmiany od 1 do max 15 ms
  13. tylko program i tak nie działa jak powinien. Chodziło mi o to żeby regulować częstotliwości mrugania diody za pomocą przycisków.
  14. mam kod: $regfile = "m8def.dat" $crystal = 8000000 Config Pinc.5 = Output Portc.5 = 0 Config Pinc.4 = Input Portc.4 = 1 Config Pinc.3 = Input Portc.3 = 1 Do Dim X As Byte X = 1 If Pinc.4 = 0 Then X = X + 1 End If If Pinc.3 = 0 Then X = X - 1 End If Waitms X Toggle Portc.5 Loop End jak zmodyfikować ten kod aby reagował zaraz po naciśnięciu przycisku i aby zmienna X była zapamiętywana w eeprom ?
  15. Jak za pomocą mikrokontrolerów sterować silnikami prądu stałego?? Chodzi głównie o to żeby dało się regulować jego prędkość. Jeśli ktoś by posiadał jakieś kody źródłowe w C z tym zwiazane prosiłbym o udostępnienie.
  16. jeżeli w dokumentacji ATMega8 jest: chodzi o ustawienia fuse bit dla kwarcu 3-8 MHz. W tym programie dla win w 2 kolumnie Fuse Low bits jeżeli dla 3-8 MHz sa ustawienia 111 dla CKSEL3..1 to w programie musze ustawic CKSEL1:zaznaczyć CKSEL2:zaznaczyć i CKSEL3:zaznaczyć ??? PS. abxyz mógłbyś przesłać mi Makefile na meila ??
  17. Czy dla każdego kwarcy będą takie same ustawienia fuse bit ( jeżeli nie to gdzie je znaleźć ?)?? Jak zaprogramować fuse bit w linuksie ??
  18. ale jak mam przeprogramować fuse bity kożystając z najprostrzego z możliwych programatorów ??
  19. co do pytania 3 to chodziło mi o to czy coś jeszcze oprócz tego zapisu potrzeba żeby kożystać z dołączonego kwarcu ( z jego częstotliwości )
  20. Mam kilka pytań na które nie znalazłem jeszcze odpowiedzi a dokładnie: ( język C ) 1. Co muszę zainstalowac aby móc kompilować programy dla avr pod linuksem ?? 2. Pod które piny muszę podłączyć kwarc i czemu akurat pod te. 3. Czy w programie muszę coś więcej podawać oprócz #define F_CPU <częstotliwość>L ?? 4. Czy zewnętrzną pamięć EEPROM mogę podłączyć pod obojętnie które piny czy są jakieś specjalne i jak zapisać dane do tej pamięci ??
  21. Hmm a jaką książkę polecasz ?? Bo ja dla mnie to najlepsza pytania i odpowiedzi no i jeszcze przykłady. PS. Byłbym bardzo wdzięczny za odp. na powyższe pytania.
  22. chodzi o to czy na mikroprocesor mogę na np. PC4 podać + czy nie ?? Jak zrobić aby dana instrukcja była wykonywana przez jakiś czas np. sbi(DDRB,PB1) przez 10s ???? Co zrobić aby w/w programie dioda świeciła tylko gdy przycisk będzie trzymany, jak puszcze to gaśnie ?? Gdzie mogę znaleźć programy dla uC w C wraz z opisami ??
  23. zabawki, odtwarzacze video, magnetofony itp.
×
×
  • Utwórz nowe...