Vis indlæg

Denne sektion tillader dig at se alle indlæg oprettet af dette medlem. Bemærk at du kun kan se indlæg der er oprettet i områder du i øjeblikket har adgang til.


Beskeder - jascore

Sider: 1 [2] 3 4 ... 11
16
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 25, 2011, 20:11:08 »
nu har jeg jo lige et lille spørgsmål mere.
hvis jeg har forstået det rigtigt så gør et interrupt at avr stopper med det den er i gang med og udføre det der nu skal udføres i forbindelse med interruptet.
er det så ikke et problem hvis ISR(ADC_vect) fyrre 6000 interrupts af i sekundet og kigger på adc'erne så der samtidig er en ISR(TIM0_OVF_vect) der står og tæller løs på tnct0, bliver der ikke kamp om hvilket interrupt der har prioritet?

17
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 25, 2011, 17:52:22 »
Citér
Med hensyn til modifikation af servo kan jeg ikke vejlede dig
har modificeret den. servoen har et internt potmeter, som bruges til at bestemme pos sammen med de impulser, så det eneste der sker er at man stiller det potmeter i midterpos og disconnecter det fra den mekaniske del. Når man så sender impulser til servoen (de samme pwm som vi bruger nu) så vil servoen på grund af det disconnected pot ikke vide om possitionen er nået, og derfor blive ved med at køre. hastigheden bestemmes af hvor mange ms high er fra 1.5ms som er midterpos.

Citér
Tabellerne er beregnet sådan at de dækker et stykke ud over modstandenes idéelle værdier.
Oki super. det var bare fordi jeg ikke lige forstod hvordan den aflæses. Jeg går ud fra at de tal der fremkommer mellem hvert komma er de enkelte værdier som passer med en adc værdi, og tabellen retunerer dermed et tal der svare til den komma plads adc værdien svare til. men jeg forstår ikke at hvis min adc værdi nu aflæses til at være 1001 hvordan ved den så hvilken plads det er når ingen af tabel værdierne giver 1001?

18
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 25, 2011, 15:55:11 »
har lige et spørgsmål til forståelse af tabeller
hvor fleksible er de?
hvis der f.eks i en tabel står (1024+512)/2, (512+414)/2 skal adc værdien så ramme et af disse tal, for hvad så hvis værdien er +-10 eller mere

19
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 25, 2011, 15:35:23 »
Citér
Jeg havde egentlig planer om at sætte en AVR op selv
Nej det skal du da ikke. lære også meget ved at prøve mig frem, så er mere end tilfreds med at du svare på mine spørgsmål og kommer med forslag. syntes selv de sidste par dage har bragt mig tættere på at forstå specielt adc delen. men har stadig ikke fundet ud af hvorfor den stopper/fryser derinde   :o
har for øvrigt også måske en design ændring der vil gøre det en del mere præcist, samtidig med at aflæsningerne af adc'er bliver lettere, da der ikke er brug for pot og dips.
jeg vil lige lufte det så jeg kan høre hvad du siger.

Jeg har modificeret en servo, så den kan køre kontinuerligt
hvis jeg så monterer en gevindstang på servoen så kan jeg jo få en møtrik til at køre frem og tilbage alt efter servoens omdrejningsretning, og der ved trække eller skubbe sprøjte stemplet.
giver det mening?
jeg mister godt nok positionsbestemmelse men får servoens fulde krafter og hastighedskontrol så det jeg mangler er egentlig bare en måde at bestemme hvor langt og hvordan.
dette kan jeg enten gøre ved kontakttryk, som kan indstilles på x antal ml og et når det er i bund. ellers kan jeg måske gøre det ved at instille pwm til at køre x antal ml i sek og så styre det på den måde.
Men den største fordel er at jeg får en linier bevægelse med langt flere krafter frem for servoarmens cirkel bevægelse

programmet er det samme stort set men når prototypen programmet er lavet kan man jo ændre det hele til at blive styrret vha 3 knapper og et visuelt feedback
1 plus knap, en minus knap og en vælg knap.

vil bare lige lufte det. har stadig tænkt mig at lave den her del færdig, for det kan godt være at det er den mest praktiske, og den anden kræver et visuelt feedback og derfor også nok en anden chip med flere ben

20
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 25, 2011, 14:47:15 »
Citér
-Så du har nok rigeligt med forsøg endnu.
gg du skulle bare vide


21
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 23, 2011, 21:23:33 »
så nu er det nok gg (er der et maks for hvor mange gange man kan skrive til en avr?)
nu prøver jeg at teste det del for del.

har fået timeren til at køre på denne måde
Kode:


ISR(TIM0_OVF_vect)
{
volatile uint8_t count = 0 ;
count++;
if (count==30)
{
toggleLED1();
count=0;
TCNT0 =0;
}
}

Samtidig har jeg kommenteret initADC(8); ud i main
count er sat til 30 for (f_cpu/64=15622)/256 = 61 hvis tnct0 tæller op til 256 så må count tælle op til 61 på 1 sek, så jeg togler hvert ½ sek.

så nu vil jeg se om jeg kan finde ud af hvor i ADC det går galt for mig gg og så lige i ADC  :o gg

Har lige et spørgsmål til en linje i adc
   ADCSRA = (1 << ADEN) | (1 << ADIF) | (1 << ADIE) | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
så vidt jeg kan læse bør adc ligge mellem 50 og 200 Khz er jeg så ikke nød til at køre med en prescaler på  8-16 altså ADPS2, ADPS1, ADPS0 = 100 eller 011 ? lige nu er den 128, altså helt nede på 7,8 khz. men jeg er absålut ikke sikker. ADC'en er somsagt den jeg har flest problemer med at tyde

et andet spørgsmål.
Hvis vi køre 8 bit opløsning på adv skal det så ikke være left aligned?
ADCSRB = (0 << ADTS2) | (0 << ADTS1) | (0 << ADTS0) | (0 << ADLAR); her er den right
og i
ISR(ADC_vect)
if(ADCSRB & (1 << ADLAR)) er den left

Jeg er på meget usikker grund for jeg prøver bare at læse alle mulige tutorials og de er både fra atmega men mest fra tiny13

Så fandt jeg en lille ting som jeg er helt sikker på --- næsten  :o
i adc skal vi ikke bruge eller læse adc3value da den er sat op som ISR(PCINT0_vect) i main.c så retter #define ADC_FIRST og LAST til 1 og 2
samtidig fjerner jeg uint16_t getADC3Value() funktionen.

22
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 22, 2011, 15:46:17 »
kan man ikke risikere at man køge en cli mere end sei eller?
jeg tænker bare at hvis man f.eks køre en sei i main og så kører alle interrupts derud af men i setMinuteCountdown(uint16_t aMinuteCountdown) kører man så en cli uden en sei. har den så ikke stoppet interrupts og setMinuteCountdown bliver kaldt fra startDosing() som igen kaldes hver gang startknappen trykkes ned eller når tiden løber ud og timer0Elapsed kaldes

23
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 22, 2011, 14:16:54 »
Citér
Prøv at lave denne smule test-kode...
den er en lille smule langsomere end et sek. men et delay på 250ms er det ikke 250 ms ligemeget om den køre 8 mhz eller 1 mhz

hvor skal jeg skrive det der med make fuse henne ?  ;D
taber ca 4 sek på et minut

24
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 22, 2011, 10:24:00 »
Citér
Hmm, vent nu lige lidt... Har du på noget tidspunkt ændret chippens fuse-bits ?

Det har jeg selv tænkt på men aner det faktisk ikke.
Jeg kan ikke huske om jeg nogensinde fik den til at compile med avrstudio5 makefile, den er pr default 8mhz. Men jeg mener aldrig at jeg fik den til at compile med denne
og så har jeg kun brugt den som jeg fik af dig.

når jeg køre avrdude skriver den avrdude: safemode: Fuses OK. og det er når der er compilet med den makefile hvor fuses sat til H:0xdf og L:0x62

Citér
Kan du se om lysdioden blinker (hurtigt) nu ?
Ja, når TCNT0 = 0 så blinker den hurtigt

Har også prøvet den interne _delay_ms(10); sammen med en toggleLED
hvis TCNT0 = 255 og _delay_ms(1000) så er den ca tændt 1 sek og derfter slukket 1 sek så det er jo rigtigt nok men 1000 ms er jo 1 sek ligemeget om den køre 1 Mhz eller 8Mhz så det kan jo ikke bruges til så meget

25
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 22, 2011, 02:10:53 »
nej jeg kan simpelthen ikke gennemskue det.
det sidste jeg har prøvet er at sætte hele timeren ind i ISR(TIM0_OVF_vect) igen så den er som du har sendt den.
hvis jeg så sætter TCNT0 = 255; så flasher ledden faktisk helt nede i if(sSeconds >= 60)   funktionen
men det går meget stærkt og lige under sSeconds++; lyser den konstant, så det må køre sindsygt hurtigt systemet.
hvilket også bliver bekræftet ved at ledden blinker langsomere hvis jeg sætter if(sSeconds >= 255)

26
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 21, 2011, 23:08:26 »
nu prøvede jeg for sjovt at hive hele timer funktionen fra ISR(TIM0_OVF_vect) uden for i sin egen funktion som jeg ikke starter nogle steder.
i ISR(TIM0_OVF_vect) satte jeg så en toggleLED ind og den står og pulserer så ISR(TIM0_OVF_vect) må jo virke
smider jeg så en waitSeconds(1) ind foran toggleLED() så blinker led med et interval på ca ½sek så waitsecond funktionen må jo også virke
dog ikke helt for den er ureglmæssig og der bliver ikke længere interval hvis den skal vente længere



Hvis jeg så trykker på startknappen så halveres intervallet ca. nogle gange. det er meget tilfældigt. andre gange starter den igen med samme interval. men der går altid x sek før den starter igen

27
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 21, 2011, 21:03:58 »
Den kommer desværre slet ikke derned har ventet 5 min nu så det er hvertfald ikke fordi timeren kører for hurtigt

28
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 21, 2011, 19:30:21 »
har prøvet at lade den stå i flere minutter og den togler ikke igen.
tiden der går før den togler når jeg har slukket den ved at trykke på start er random men ændre jeg på dip indstillingen så ændres det interval til noget meeeget længere

29
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 21, 2011, 19:18:10 »
ok fjernede startdosing efter sei, i main.
smed en setLES ind i startknapfunktionen så jeg er sikker på den slukker når jeg trykker.
der efter er der en toggleLED lige efter sSecond++

den slukker når jeg trykker på strtknap og tænder x antal sek efter igen. men så forbliver den tændt

30
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: November 21, 2011, 19:13:53 »
det er der jeg har den nu og den gør som beskrevet ovenfor. den køre kun 1 cycle pr tryk på startknappen og mellem 5 og 25 sek

dette sker kun hvis der er en startDosing() lige efter sei i main, og samtidig inde i startknap funktionen fjerner jeg den efter sei i main sker der intet.
så for mig giver det ikke lige mening

Sider: 1 [2] 3 4 ... 11