Jinak děkuju, že ste to semnou vydrželi a pomohli mi :)
Příspěvky odeslané z IP adresy 94.199.199.–
tak už je to odevzdaný.... :D sice je to blbě, ale snad mi tu 4řku dá :D
Tak z 90 % jo :)uvidim ve škole zachvilku :)
ted už sem se do toho dostal.... do toho časovača dám svou hodnotu... potom tam nahážu hodnoty té sinusovky a vlastně to co si napsal ty tedka, tak to zapříčiní to, že když bude tlačítko sepnuto/nesepnuto tak tam bude 1/0 to bude mět za následek ten sinus nebo trojůhelník.... ještě si to tam nějak pošmelim ty věcy, že místo sinetable(sinusovky) tam udělám druhej program co povalí ten trojůhelník
akorát nevim přesně jak to asi myslíš....
ISR (SIG_OVERFLOW0) // Counter0 Interrupt Service
{
PORTB = (sinetable[i++]);
TCNT0 = 175;
if (i==32)
{
i=0;
}
}
přepíšu na ten kod co si psal místo tohoto a až zjistim co to dělá, tak to přepíšu na ten druhej?
Jinak díky moc, su Ti zavázanej!!!
*/
#include <avr/interrupt.h>
#include <stdlib.h>
#include <avr/sleep.h>
char sinetable [32];
int i ;
void ioinit (void) // Initialize I/O.
/*
I/O Pin assignments for AT90S8515:
Port A is the R/2R DAC
PORT B is Test output
PORT C is unused
PORT D is unused
*/
{
//Initialize output ports
PORTB = 0b11111111;
PORTD = 0b11111111;
DDRB = 0b11111111;
DDRD = 0b00000000;
}
void timer0_setup (void)
{
TCCR0 = 0b00000001;
TCNT0 = 175;
TIMSK = 0b00000010;
}
ISR (SIG_OVERFLOW0) // Counter0 Interrupt Service
{
PORTB = (sinetable[i++]);
TCNT0 = 175;
if (i==32)
{
i=0;
}
}
void arraysettup (void)
{
sinetable[0]=127; // Put 32 step 8 bit sine table into array.
sinetable[1]=152;
sinetable[2]=176;
sinetable[3]=198;
sinetable[4]=217;
sinetable[5]=233;
sinetable[6]=245;
sinetable[7]=252;
sinetable[8]=254;
sinetable[9]=252;
sinetable[10]=245;
sinetable[11]=233;
sinetable[12]=217;
sinetable[13]=198;
sinetable[14]=176;
sinetable[15]=152;
sinetable[16]=128;
sinetable[17]=103;
sinetable[18]=79;
sinetable[19]=57;
sinetable[20]=38;
sinetable[21]=22;
sinetable[22]=10;
sinetable[23]=3;
sinetable[24]=0;
sinetable[25]=3;
sinetable[26]=10;
sinetable[27]=22;
sinetable[28]=38;
sinetable[29]=57;
sinetable[30]=79;
sinetable[31]=103;
}
int main (void)
{
ioinit();
arraysettup();
timer0_setup();
i = 0;
sei();
while (1)
{
set_sleep_mode(SLEEP_MODE_IDLE);
}
return (0);
}
netušíš, jestli by toto jelo, když bych to nějak smixoval, kamoš tam něco psal, jenže mu nikdo neodpověděl....toto by měl bejt sinusovej průběh, že bych to tam nějak nasmolil
Zao.celk.
127
138
150
161
173
184
203
184
173
161
150
127
tak mi vyšel trojůhelník.....
jsou tam jiný čísla....
začínám na 127,153,178,199,215,225,229..... a jde to do nuly a zpátky skoro na 127... to by měl být sinus....
a zadefinovat nevim co přesně myslíš...
mno nedivím se..... jsu na tom s programováním mizerně... Zkuím to nějak nadefinovat.... maximální hodnota pro 5 V je 255 já mám 4v takže by se to mělo vyšplhat něco lehce přes 200
pokusím se to napsat a pak to hodim sem
Jinak borci, prosimvás de mi o kejhák... propadám z toho programka a je to na zejtřek .... popřípadě, kdyby byl někdo ochonej mi ten program napsat a vysvětlit, tak bych se vyrovnal aji finančně, protože na toto nemám prostě buňky
snaha je, ale nějak mi to nejde...
Mám k tomu všechno :) ikdyž na 99% blbě :D v hlavě vím, co to má dělat a jak to má dělat, ale neumím to zapsat :)
#define F_CPU 20000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sfr_defs.h>
unsigned char sinus = {154, 181, 203, 223, 239, 250, 255, 255, 250, 239, 223, 203, 180, 156, 128, 101, 76, 53, 33, 17, 7}; //hodnoty sinusu
int sinus()
{
while(1){
for(x=0;x<=max;x++){
}
#define PORT PORTB
#define DDR DDRB
#define PIN PINB
Char klav. I_TEMP,O_TEMP,bit;
Unsigned char BitRot (unsigned char sinus, unsigned char trojuhelnik)
Int main (void)
{
DDR = 0xF0;
PORT = 0x70;
O_TEMP = 0xF0;
DDRD = 0xFF;
PORTD = 0xFF;
_NO()P;
_NO()P;
Do
{
I_TEMP = PIN & 0x0F
If (I_TEMP == 0x0F)
int trojuhelnik()
unsigned char trojuhelnik = {-2, -1,84, -1,52, -1,2, -1,04, -0,72, -0,56, -0,4, -0,24, 0,56, 0,72, 1,04, 1,2, 1.52, 1.84, 2, 1.52, 1.04, 0.56, 0.08, -0.56, -1.04, -1.52, -1.84, -2}; //hodnoty trojuhelniku
int trojuhelnik()
{
while(1){
for(x=0;x<=max;x++){
PORTB = trojuhelnik;
}
Toto mám.... kamoš kterej má stejný zadaní tak už tady něco taky psal koukám, vidim část programu kterej sme dali nějak dohromady :D jestli potřebuješ ještě něco tak napiš.... mám aji vypočítanej ten sinusovej průběh a trojůhelník
unsigned char sinus = {154, 181, 203, 223, 239, 250, 255, 255, 250, 239, 223, 203, 180, 156, 128, 101, 76, 53, 33, 17, 7}; //hodnoty sinusu
int sinus()
{
while(1){
for(x=0;x<=max;x++){
}
#include <avr/interrupt.h>
#include <stdlib.h>
#include <avr/sleep.h>
char sinetable [32];
int i ;
void ioinit (void) // Initialize I/O.
/*
I/O Pin assignments for AT90S8515:
Port A is the R/2R DAC
PORT B is Test output
PORT C is unused
PORT D is unused
*/
{
//Initialize output ports
PORTB = 0b11111111;
PORTD = 0b11111111;
DDRB = 0b11111111;
DDRD = 0b00000000;
}
void timer0_setup (void)
{
TCCR0 = 0b00000001;
TCNT0 = 175;
TIMSK = 0b00000010;
}
ISR (SIG_OVERFLOW0) // Counter0 Interrupt Service
{
PORTB = (sinetable[i++]);
TCNT0 = 175;
if (i==32)
{
i=0;
}
}
void arraysettup (void)
{
sinetable[0]=127; // Put 32 step 8 bit sine table into array.
sinetable[1]=152;
sinetable[2]=176;
sinetable[3]=198;
sinetable[4]=217;
sinetable[5]=233;
sinetable[6]=245;
sinetable[7]=252;
sinetable[8]=254;
sinetable[9]=252;
sinetable[10]=245;
sinetable[11]=233;
sinetable[12]=217;
sinetable[13]=198;
sinetable[14]=176;
sinetable[15]=152;
sinetable[16]=128;
sinetable[17]=103;
sinetable[18]=79;
sinetable[19]=57;
sinetable[20]=38;
sinetable[21]=22;
sinetable[22]=10;
sinetable[23]=3;
sinetable[24]=0;
sinetable[25]=3;
sinetable[26]=10;
sinetable[27]=22;
sinetable[28]=38;
sinetable[29]=57;
sinetable[30]=79;
sinetable[31]=103;
}
int main (void)
{
ioinit();
arraysettup();
timer0_setup();
i = 0;
sei();
while (1)
{
set_sleep_mode(SLEEP_MODE_IDLE);
}
return (0);
}
první program, vlastně část sem napsal já, vypisuje to sinusovej průběh....mohl bych použít místo něho ten program co je pod ním? je to z této stránky http://cappels.org/dproj/1_kHz_Signal_Source/1_KHz_Sine_Wave_Generator.html popřípadě jakou část tam dát a co tam změnit, když je Um 4v a frekvence 45khz
konkrétně Attiny2313 :)
su v programování nováček, takže moc nevím, co je grafická knihovna, ale doufám, sem se trefil správně :)
#define F_CPU 20000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sfr_defs.h>
Zdravím, mohl by mi tu někdo poradit s tlačítkem? Konkrétně mám program, který generuje 2 průběhy a potřebuju, aby se při stisku tlačítka přeměnili.... tzn. z sinusovýho na trojůhelníkovej a naopak.
Je to v jazyku c
děkuju