Hjälp med 16F1937
Hjälp med 16F1937
Har precis dragit igång ett större (för mig iaf) projekt där jag ska använda ovan nämnd PIC.
Har aldrig använt denna innan så jag tänkte använda denna tråden för att ställa frågor. Använder MikroC kompilator.
Denna mcu har fler funktioner än de jag labbat med innan så jag känner mig jävligt vilse i datablad,register mm
Som första test har jag bara en summer kopplad till RC2 och vill helt enkelt aktivera den en kort stund.
På denna pinne finns seg3/p1a/ccp1/rc2.
har satt den som utgång och satt
LCDCON=0b00000000 för att stänga av segments drivaren.
Men sen reder jag inte ut hur jag stänger av ccp1 och jag fattar inte vad p1a är för ngt.
SCHEMA-> http://www.ladda-upp.se/bilder/nvuqeddljweez/
Har aldrig använt denna innan så jag tänkte använda denna tråden för att ställa frågor. Använder MikroC kompilator.
Denna mcu har fler funktioner än de jag labbat med innan så jag känner mig jävligt vilse i datablad,register mm
Som första test har jag bara en summer kopplad till RC2 och vill helt enkelt aktivera den en kort stund.
På denna pinne finns seg3/p1a/ccp1/rc2.
har satt den som utgång och satt
LCDCON=0b00000000 för att stänga av segments drivaren.
Men sen reder jag inte ut hur jag stänger av ccp1 och jag fattar inte vad p1a är för ngt.
SCHEMA-> http://www.ladda-upp.se/bilder/nvuqeddljweez/
Senast redigerad av newbadboy 28 maj 2014, 15:26:33, redigerad totalt 1 gång.
- Klas-Kenny
- Inlägg: 11841
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Hjälp med 16F1937
Både CCP1 och P1A har med CCP-modulen att göra, P1A är en PWM-utgång.
Det normala är att CCP-modulen är avstängd default, så personligen hade jag inte brytt mig om att göra någonting med den.
Men med det du gjort, har du fått igång utgången?
Det normala är att CCP-modulen är avstängd default, så personligen hade jag inte brytt mig om att göra någonting med den.
Men med det du gjort, har du fått igång utgången?
Re: Hjälp med 16F1937
P1A är en av utgångarna från PWM modulen. Se t.ex sidan 19.
Eller i index längst bak under "P":
På sidan 222 kallas den PxA eftersom det finns fler (P1A, P2A, P3A).
Om du sökte i databladet efter "P1A" så borde du har hittat det...
CCP1 står för "Capture Compare Pin 1".
Som Klas-Kenny säger så bör det vara avstängt efter reset, men om du vill visa att du har
tänkt på det så kan du ju i alla fall sätta rellevanta register på rätt sätt.
Se sidan 234: "0000 = Capture/Compare/PWM off (resets ECCPx module)"
Eller i index längst bak under "P":
Kod: Markera allt
P1A/P1B/P1C/P1D.See Enhanced Capture/Compare/
PWM (ECCP)............................................................ 222
Om du sökte i databladet efter "P1A" så borde du har hittat det...
CCP1 står för "Capture Compare Pin 1".
Som Klas-Kenny säger så bör det vara avstängt efter reset, men om du vill visa att du har
tänkt på det så kan du ju i alla fall sätta rellevanta register på rätt sätt.
Se sidan 234: "0000 = Capture/Compare/PWM off (resets ECCPx module)"
Re: Hjälp med 16F1937
Är det en passiv (som behöver en "signal") eller en aktiv (som
enbart behöver en matningsspänning) summer?
enbart behöver en matningsspänning) summer?
- Klas-Kenny
- Inlägg: 11841
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Hjälp med 16F1937
Hur mycket ström drar den (summern alltså)?
Testat koppla ur summern och bara mäta på utgången med multimeter för att se om du får någon spänning ut?
Testat koppla ur summern och bara mäta på utgången med multimeter för att se om du får någon spänning ut?
Re: Hjälp med 16F1937
Glöm allt jag skrev och jag ber om ursäkt. Jag hade skrivit fel port hade. Nu funkar det.
Kommer säkert fler puckade frågor
Kommer säkert fler puckade frågor

Re: Hjälp med 16F1937
Ja nu har jag fått tag på alla prylar och även fått displayen monterad. Nu kommer alltså i mitt tycke det svåraste, att sätta alla register rätt
...
Till att börja med behöver jag ha hela PORTA till IO pinnar för att kunna skicka data till displayen. Men jag vet inte vilka funktioner som behöver stängas av... ADCON0=0 är det enda jag satt men det räcker inte.

Till att börja med behöver jag ha hela PORTA till IO pinnar för att kunna skicka data till displayen. Men jag vet inte vilka funktioner som behöver stängas av... ADCON0=0 är det enda jag satt men det räcker inte.
Re: Hjälp med 16F1937
Kapitlet "12.2 PORTA Registers" i databladet har det du behöver.
Kolla speciellt "12.2.1 ANSELA REGISTER" !
Hur kom du fram till att det var ADCON0 du skulle "cleara" ?!
Kolla speciellt "12.2.1 ANSELA REGISTER" !
Hur kom du fram till att det var ADCON0 du skulle "cleara" ?!
Re: Hjälp med 16F1937
ska kolla tack.
"
15.2.1 STARTING A CONVERSION
To enable the ADC module, the ADON bit of the
ADCON0 register must be set to a ‘1
"
"
15.2.1 STARTING A CONVERSION
To enable the ADC module, the ADON bit of the
ADCON0 register must be set to a ‘1
"
Re: Hjälp med 16F1937
Aha, OK... 
Ja, där står ju sådant som gäller ADC enheten i allmänhet.
12.2 har det som gäller som gäller för PORTA specifikt.
Som sagt, ANSELA är det som du letade efter...
Byt ut "ADCON0=0" till "ANSELA=0".

Ja, där står ju sådant som gäller ADC enheten i allmänhet.
12.2 har det som gäller som gäller för PORTA specifikt.
Som sagt, ANSELA är det som du letade efter...

Byt ut "ADCON0=0" till "ANSELA=0".
Re: Hjälp med 16F1937
Och nu verkar min hårddisk ha gått sönder. Jävla smäckkkk... Skulle precis prova..
Re: Hjälp med 16F1937
Nu har jag fått igång lite grejer 
Så nu till min testkod. Jag försöker toggla hela port a men den är noll hela tiden. Så det måste vara ngt som inte stämmer. Utgången som heter katod togglas som det ska utan problem. Så programmet snurrar iaf

Så nu till min testkod. Jag försöker toggla hela port a men den är noll hela tiden. Så det måste vara ngt som inte stämmer. Utgången som heter katod togglas som det ska utan problem. Så programmet snurrar iaf
Kod: Markera allt
/*
Manöverpanel till fjärrvärme Pic16F1937, intern 8MHz OSC, extern MCLR
*/
#define BUZZ PORTC.F3 //Name ports
#define SERVO PORTD.F1
#define KATOD PORTC.F2
#define PWM PORTD.F1
int k=0;
//LCD module connection
sbit LCD_RS at RA0_bit;
sbit LCD_EN at RA1_bit;
sbit LCD_D4 at RA2_bit;
sbit LCD_D5 at RA3_bit;
sbit LCD_D6 at RA4_bit;
sbit LCD_D7 at RA5_bit;
sbit LCD_RS_Direction at TRISA0_bit;
sbit LCD_EN_Direction at TRISA1_bit;
sbit LCD_D4_Direction at TRISA2_bit;
sbit LCD_D5_Direction at TRISA3_bit;
sbit LCD_D6_Direction at TRISA4_bit;
sbit LCD_D7_Direction at TRISA5_bit;
//End LCD module connection
void main() {
TRISA=0b00000000; //Set port direction
TRISB=0b00110011;
TRISC=0b11000000;
TRISD=0b00000000;
TRISE=0b00000000;
LCDCON=0b00000000;
ANSELA=0;
ADCON0=0;
while(1){
KATOD=1;
PORTA=1;
delay_ms(500);
KATOD=0;
PORTA=0;
delay_ms(500);
}
}