The method that I used has a mix of BCD and binary, which can get a bit confusing. I used BCD for the user entry of frequency, since it's entered digit by digit. This BCD value is converted to binary in the process of scaling by the clock rate factor. Then everything after that is done in binary. For the sweep starting frequency, to get half the centre frequency value, all you have to do is a right shift.