Berättigad fråga, och tyvärr är svaret ja.
TRISB = 0b00010000; och DT/CK är RB5 & 7.
Har också testat att sänka/ändra baudrate, utan framgång.
EDIT: Nu verkar det lira. Finns en risk att det fungerat hela tiden men jag har bara inte insett vilken fart datan klockas över med om jag släpper "baud rate generatorn" lös.
Just nu klockar den data med 2 MHz... liiiiiiiiiite för snabbt. Tyvärr innebär det här att det är något annat som orsakar mitt displayproblem. Återkommer säkert...
EDIT2: Nej, ska nog hålla mig så långt bort från allt som kallas för programmering. Undra hur många av mina skitprojekt som bara ligger pga att jag inte får ihop programmet...
EUSART baudrate fråga till en PIC16F690
Re: EUSART baudrate fråga till en PIC16F690
Det är bara att kämpa på, Magnus! Man lär sig bit för bit. Du ska inte ge upp programmeringen när du verkar ha många intressanta ideer.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: EUSART baudrate fråga till en PIC16F690
Tack för att du hejjar på!
Fick till slut lägga ner idén med syncron överföring då jag läste det här i databladet: "Only as many clock cycles are generated as there are data bits"
Med andra ord var det en dålig idé att försöka kommunicera med ett shift-register på det här sättet, då jag alltid måste klocka in 8 bitar...
Det löste sig ändå med en mjukvarulösning som någon här lärde mig. Enligt nedan. Väldigt smidigt och snabbt måste jag säga!

Fick till slut lägga ner idén med syncron överföring då jag läste det här i databladet: "Only as many clock cycles are generated as there are data bits"
Med andra ord var det en dålig idé att försöka kommunicera med ett shift-register på det här sättet, då jag alltid måste klocka in 8 bitar...
Det löste sig ändå med en mjukvarulösning som någon här lärde mig. Enligt nedan. Väldigt smidigt och snabbt måste jag säga!
Kod: Markera allt
for(j=0;j<=7;j++) { //Manually shift segmentbits to shift register
if(segmentData & (1<<j)) {
DATA = 1;
DATA_CLK = 1;
} else {
DATA = 0;
DATA_CLK = 1;
}
DATA = 0;
DATA_CLK = 0;
}
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: EUSART baudrate fråga till en PIC16F690
Så här skulle jag göra. NOPen för att ge lite setuptid.
Om du har optimering påslagen kan du drabbas av att instruktionerna byter ordning.
Om du har optimering påslagen kan du drabbas av att instruktionerna byter ordning.
Kod: Markera allt
for(j=0;j<=7;j++) { //Manually shift segmentbits to shift register
DATA_CLK = 0;
if(segmentData & (1<<j)) {
DATA = 1;
} else {
DATA = 0;
}
NOP;
DATA_CLK = 1;
}