Bruce,
I have IDE 7.52. No didn't see the 16F1827.INC in the MPASM directory....sigh. If I upgrade now will it screw up all my other working code for other chip bodies?
ggrrrrr.
Best Regards,
Nick
Bruce,
I have IDE 7.52. No didn't see the 16F1827.INC in the MPASM directory....sigh. If I upgrade now will it screw up all my other working code for other chip bodies?
ggrrrrr.
Best Regards,
Nick
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Alain,
Still nothing. I upgraded to 8.46. Now when I compile it opens up a DOS window and does something REALLY quick using MPASMwin.exe then returns with a bunch of errors.....my code is below....
Is it sufficient to choose the device in MicroStudio or do I need to call it within the ASM section in the code?
DEFINE OSC 8
ASM
__config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__config _CONFIG2, _PLLEN_OFF & _LVP_OFF & _VCAPEN_OFF & _LVP_OFF & _STVREN_OFF
ENDASM
TRISA = 0
TRISB = 0
Duty VAR WORD
Init:
CCPTMRS = %00000000 ' CCP1 is based off Timer 2 in PWM Mode
PR2 = 49 ' Set PWM for ~40kHz
CCP1CON = %00001100 ' Mode select = PWM
T2CON = %00000100 ' %00000100 = TMR2 ON 1:1 prescale
Duty = 100 ' Roughly 50% duty cycle
CCP1CON.4 = duty.0 ' Setup 10-bit duty cycle as
CCP1CON.5 = duty.1 ' a 10-bit word
CCPR1L = DUTY
APFCON0 = 1 ' Assigns CCP1 PWM output to RB0 (RB3 is used for MODOUT)
OSCCON = %01110000 ' 8MHz internal
ANSELA = 0 ' all digital. A/D disabled
ANSELB = 0
' Data Signal Modulator setup
' Notes:
' MDSRC.7 = 1, which eliminates the USART TX signal output on RB2/TX.
' The PWM output signal, on CCP1 pin, which is set to RB0 with APFCON0=1
' has been disabled by setting MDCARL.7
' So even with the hardware USART outputting data, and PWM on, thier output pins
' are disabled. PWM and the serial data output from the USART are "mixed" internally
' by the Data Signal Modulator.
MDCON = %11100000 ' modulator, MODOUT pin, slew rate limiting enabled
MDSRC = %10001010 ' USART TX is modulation source, TX output "pin" disabled
MDCARH = %00000000 ' carrier OFF during idle periods
MDCARL = %10000100 ' carrier ON only when sending data, CCP1 PWM "pin" output disabled
Main:
HSEROUT [$55] ' sends USART data out modulated at 40kHz
PAUSE 500
GOTO Main
END
Ok ...
1) Did you make the mods Bruce pointed at in his 6th February post ???
you DO have to make them ...
Also, check your PI14EEXT.BAS to make sure it has APFCON0 VAR BYTE EXT and not
APFCON VAR BYTE EXT.
There should also be these definitions in the PI14EEXT.BAS file;
Code:
MDCON VAR BYTE EXT
MDSRC VAR BYTE EXT
MDCARH VAR BYTE EXT
MDCARL VAR BYTE EXT
If these aren't in there, just add them.
2) just Paste Bruce's code in MCS:
MUST compile without any error in MCS if 1) has been done.Code:'**************************************************************** '**************************************************************** '* Name : DSM.BAS * '* Author : B. Reynolds * '* Notice : Copyright (c) 2010 http://www.Rentron.com * '* : All Rights Reserved * '* Date : 2/5/2010 * '* Version : 1.0 * '* Notes : Using the 16F1827 Data Signal Modulator for IR * '* : serial communications with onboard USART. * '**************************************************************** ' MODOUT, RB3, outputs whatever you send with HSEROUT as a 40kHz ' modulated data stream. ASM __config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF __config _CONFIG2, _PLLEN_OFF & _LVP_OFF & _VCAPEN_OFF & _LVP_OFF & _STVREN_OFF ENDASM DEFINE OSC 8 DEFINE HSER_BAUD 2400 Duty VAR WORD TRISB = 0 Init: PR2 = 49 ' Set PWM for ~40kHz CCP1CON = %00001100 ' Mode select = PWM T2CON = %00000100 ' %00000100 = TMR2 ON 1:1 prescale Duty = 100 ' Roughly 50% duty cycle CCP1CON.4 = duty.0 ' Setup 10-bit duty cycle as CCP1CON.5 = duty.1 ' a 10-bit word CCPR1L = DUTY >> 2 APFCON0 = 1 ' CCP1 PWM output on RB0 OSCCON = %01110000 ' 8MHz internal ANSELA = 0 ' all digital. A/D disabled ANSELB = 0 MDCON = %11100000 ' modulator, MODOUT pin, slew rate limiting enabled ' Note: set MDSRC.7 to eliminate the TX signal output on RB2/TX MDSRC = %00001010 ' USART TX is modulation source, TX output still active MDCARH = %00000000 ' carrier OFF during idle periods MDCARL = %00000100 ' carrier ON only when sending data Main: HSEROUT [$55] ' sends USART data out modulated at 40kHz PAUSE 50 GOTO Main END
As simple as that.
Alain
Last edited by Acetronics2; - 19th February 2010 at 17:53.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Alain,
I recopied the code from your post. Still getting
Symbol not previously defined (PortC)
Symbol not previously defined (TRISC)
etc etc etc
Hi,
Got it ...
This is from a Melab's errata sheet Darrel Pointed at some times ago ....Devices affected: 16F1826, 16F1827
Date encountered: 08/2009
Error class: safe (always reported)
There are invalid port aliases in the PBP header file for these parts. The following assembly errors will be generated:
Symbol not previously defined (PORTC)
Symbol not previously defined (TRISC)
Workaround:
Edit the files 16F1826.BAS and 16F1827.BAS (found in the PBP install folder) as follows:
PORTL VAR PORTB
PORTH VAR PORTA ' PORTC invalid, change to PORTA
TRISL VAR TRISB
TRISH VAR TRISA ' TRISC invalid, change to TRISA
I made the mod a while ago ... so couln't see what's wrong.
Have a nice evening
Alain
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Alain,
Ok getting somewhere now. When I comment out all the fuse configurations between the ASM and ENDASM I get no errors. With all the mods that you suggested.
I am down to 3 errors.
overwriting previous address contents (8007)
symbol not previously defined (_CAPEN_OFF)
overwriting previous address contents (8008)
What other files do I have to modify to get rid of these errors?
Nick
Bookmarks